0

尝试上传图像文件时,托管服务器有时会发出警告。如果我尝试在成功尝试中上传相同的文件,图像将被上传。

警告:

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

此处,当警告出现时,其他部分中的“错误”也会返回警告...

我怎样才能纠正它?

它在本地服务器上运行良好......

4

3 回答 3

2

可能您的脚本没有写入目标目录的权限。

于 2012-05-03T05:10:33.107 回答
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

于 2012-05-03T05:12:47.507 回答
0

检查目录和文件上的CHMOD 。通常 PHP 像root一样运行,但你仍然可以使用 CHMOD 禁止它的访问。

于 2012-05-03T05:14:06.107 回答