上传目录不可写

时间:2013-08-19 19:20:58

标签: php

我最近刚刚将我的服务器移到新主机上,现在我的PHP上传表单出现了问题。无法上传文件。我得到的错误是:

  

警告:   move_uploaded_file(/public_html/site/abc/uploads/APLICATION.doc)   [function.move-uploaded-file]:无法打开流:没有这样的文件或   第389行/long/path/apply.php中的目录

     

警告:move_uploaded_file()[function.move-uploaded-file]:无法执行   将'/ tmp / phpDAz5QP'移动到   '/public_html/site/uploads/1908131216_APPLICATION.doc'中   第389行/long/path/apply.php问题:无法将文件移动到   目标目录不可写/ tmp / phpDAz5QP -   /public_html/site/abc/uploads/1908131216__APPLICATION.doc

我有一个小测试来查看目录是否可写,但事实并非如此。

$upload_dir = "/public_html/site/$companyfolder/uploads";
if(!is_writable($upload_dir)) {
    $writable = 'not writable';
} else {
    $writable = 'writable';
}
echo $writable;

我将uploads文件夹设置为777以获取权限。为什么目录不可写的任何想法?

1 个答案:

答案 0 :(得分:2)

从上面的代码中,您的上传路径似乎不正确:

$upload_dir = "/public_html/site/$companyfolder/uploads";

应该是这样的:

$upload_dir = "/home/youruser/public_html/site/{$companyfolder}/uploads";

目录必须是绝对路径或相对路径。当它是相对的时,它需要相对于被调用的PHP所在的位置。

所以你可以把它用作./site/{$companyfolder}/uploads,例如,你使用的PHP代码是/home/youruser/public_html