PHP上传问题获取错误0但move_uploaded_file()返回false.当我打印出$ _FILES时,我得到了
Array ( [uploadedfile] => Array ( [name] => flashlog.txt [type] =>
text/plain [tmp_name] => /tmp/php0XYQgd [error] => 0 [size] => 3334 ) )
Run Code Online (Sandbox Code Playgroud)
我正在使用基本的html/php教程让我相信它可能是服务器问题.我检查php.ini并有upload_max_filesize:2M,post_max_size:8M.所以我真的很困惑,因为我认为0的错误告诉我它是成功的.
我正在使用的代码是
<?php
// Where the file is going to be placed
$target_path = 'Test/';
$target_path = $target_path. basename( $_FILES['uploadedfile']['name']);
if(move_uploaded_file($_FILES['uploadedfile']['tmp_name'], $target_path))
{
echo "The file ". basename( $_FILES['uploadedfile']['name']).
" has been uploaded";
}
else
{
echo "There was an error uploading the file, please try again!";
echo print_r($_FILES);
}
?>
Run Code Online (Sandbox Code Playgroud)
move_uploaded_file() 如果无法写入目标目录,也将返回false.
我看到处理上传的大多数PHP代码都会跳过检查过程中的一些主要部分.上传代码应执行以下步骤:
$_FILES[]存在并填充正确的条目.error字段以查看它是否到达服务器 - 很多代码只检查它是否为0,这意味着它无法向用户返回任何正确的错误.move_uploaded_file()去做 - 太多只是做一个文件副本,绕过安全检查move_uploaded_file().这些是不连续的步骤:正如您似乎看到的那样,实际上传可以成功,但move_uploaded_file()可能会失败.你的问题假定如果后者失败,那么前者也失败了.
哦是的:打电话move_uploaded_file($_FILES['uploadedfile']['tmp_name'], $destination).使用$_FILES['uploadedfile']['name']不起作用.
| 归档时间: |
|
| 查看次数: |
16092 次 |
| 最近记录: |