move_uploaded_file失败

Yso*_*oL8 12 php image

有人可以帮助我理解为什么这会返回错误吗?

if ((move_uploaded_file($_FILES[$field]['tmp_name'], $path))) {
Run Code Online (Sandbox Code Playgroud)

如在,潜在的原因.我已检查变量是否正确,我已检查目标文件夹的权限是777.

干杯!

对于那些想要看var_dump($ _FILES)的人;

array(1) { ["image"]=>  array(5) { ["name"]=>  string(14) "accountile.png" 
["type"]=>  string(9) "image/png" ["tmp_name"]=>  string(14) "/tmp/php28IQhv" 
["error"]=>  int(0) ["size"]=>  int(394) } }
Run Code Online (Sandbox Code Playgroud)

You*_*nse 22

我检查了变量

不检查变量但检查错误消息.
这是你唯一需要的东西.
在代码顶部添加这些行

ini_set('display_errors',1);
error_reporting(E_ALL);
Run Code Online (Sandbox Code Playgroud)

看看它说的是什么.
如果move_uploaded_file失败,它将始终引发错误并提供详细说明.
您不会相信它,但阅读错误消息是找到问题的有效方式,而不是您之前尝试过的猜测

我不敢相信没人提到它.


Web*_*net 1

有了move_uploaded_file你就不需要777权限了。的输出是什么$path?您确认$path存在吗?您确认$field存在吗?

我的猜测是 $field 或 $path 不存在,或者 open_basedir 有效。

是否open_basedir启用限制?这可能会阻止写入上传文件的目的地。查看 php.ini 中的open_basedir,如果指定了路径,则该路径已启用,并且您想查看上传文件的目标路径是否在此路径内。如果是的话,那就是它失败的原因。

更新

$path 不能是 URL,它必须是本地路径,例如/home/user/public_html/