有人可以帮助我理解为什么这会返回错误吗?
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失败,它将始终引发错误并提供详细说明.
您不会相信它,但阅读错误消息是找到问题的有效方式,而不是您之前尝试过的猜测
我不敢相信没人提到它.
有了move_uploaded_file你就不需要777权限了。的输出是什么$path?您确认$path存在吗?您确认$field存在吗?
我的猜测是 $field 或 $path 不存在,或者 open_basedir 有效。
是否open_basedir启用限制?这可能会阻止写入上传文件的目的地。查看 php.ini 中的open_basedir,如果指定了路径,则该路径已启用,并且您想查看上传文件的目标路径是否在此路径内。如果是的话,那就是它失败的原因。
更新
$path 不能是 URL,它必须是本地路径,例如/home/user/public_html/