当尝试上传图像文件时,托管服务器有时会发出警告。如果我尝试在后续尝试中上传相同的文件,则会上传图像。
警告:
Warning (2): move_uploaded_file(files/photos/3.jpg) [http://php.net/function.move-uploaded-file]: failed to open stream: Permission denied [APP/controllers/components/file_upload.php, line 55]
Warning (2): move_uploaded_file() [http://php.net/function.move-uploaded-file]: Unable to move '/tmp/phpUutr9Z' to 'files/photos/3.jpg' [APP/controllers/components/file_upload.php, line 55]
文件上传
if ( is_uploaded_file($file_temp) ) {
if (move_uploaded_file($file_temp, $destination . $filename . '.' . $extension)) {
$error = "SUCCESS";
return $error;
} else {
$error = "ERROR";
return $error;
}
}
此处警告到来时,其他部分的“错误”也会返回警告......
我如何纠正它?
它在本地服务器上工作得很好......
答案 0 :(得分:2)
您的脚本可能没有写入目标目录的权限。
答案 1 :(得分:0)
您希望保存上传内容的APP/controllers/components/files/photos/3.jpg
是什么?如果是,那么它的权限问题。
或者您的意思是:WEB_ROOT/files/photos/3.jpg
如果是这样,您还需要更改代码:
if ( is_uploaded_file($file_temp) ) {
if (move_uploaded_file($file_temp, '/'.$destination.$filename.'.'.$extension)) {
$error = "SUCCESS";
return $error;
} else {
$error = "ERROR";
return $error;
}
}
注意正斜杠'/'.$destination
答案 2 :(得分:0)
检查目录和文件上的 CHMOD 。通常PHP就像 root 一样运行,但您仍然可以禁止它使用CHMOD进行访问。