主机服务器中的文件上载问题

时间:2012-05-03 05:06:52

标签: php file-upload

当尝试上传图像文件时,托管服务器有时会发出警告。如果我尝试在后续尝试中上传相同的文件,则会上传图像。

警告:

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;
    }
}

此处警告到来时,其他部分的“错误”也会返回警告......

我如何纠正它?

它在本地服务器上工作得很好......

3 个答案:

答案 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进行访问。