PHP move_uploaded_file 权限被拒绝

Posted

技术标签:

【中文标题】PHP move_uploaded_file 权限被拒绝【英文标题】:PHP move_uploaded_file permission denied 【发布时间】:2012-07-27 18:56:46 【问题描述】:

我一直在尝试将图像从表单移动到我网站上由 godaddy 托管的上传文件夹。使用 move_uploaded_file() 方法时,我收到权限被拒绝错误。关于这个主题,我已经解决了很多问题,但没有一个问题能解决我的问题。另外,我已将权限更改为 777。

这是我得到的错误:

警告:move_uploaded_file() [function.move-uploaded-file]:无法 移动 'D:\Temp\php\php42C0.tmp' 到 '上传/vZvD6WI4vkapbCLovWtrSIG3xPLD0E.jpeg' 在 D:\Hosting\11111\html\dir\upload_image\formsubmit.php 在第 80 行

PHP 代码:

$name = $_POST['name'];
$email = $_POST['email'];

if(isEmpty($name) || isEmpty($email)) 
    print '<b>Please go back to the previous page and fill out your name.</b>';

else 

$file_name = "file1";
    if ((($_FILES[$file_name]["type"] == "image/gif")
     || ($_FILES[$file_name]["type"] == "image/jpeg")
     || ($_FILES[$file_name]["type"] == "image/jpg")
     || ($_FILES[$file_name]["type"] == "image/bmp")
     || ($_FILES[$file_name]["type"] == "image/tiff")
     || ($_FILES[$file_name]["type"] == "image/png")
     || ($_FILES[$file_name]["type"] == "image/pjpeg"))
     && ( ($_FILES[$file_name]["size"] < 10000000) && $_FILES[$file_name]["size"] > 0) )
    
        if ($_FILES[$file_name]["error"] > 0)
        
            print "There was an error in uploading your images: " . $_FILES[$file_name]["error"] . "<br />";
        
        else
        
            if (file_exists("upload/" . $rand_img_name.".jpeg") )
            
                print "Please try uploading your image again<br />";
            
            else
            
                move_uploaded_file($_FILES[$file_name]["tmp_name"],
                "upload" ."/". $rand_img_name.".jpeg");
                $files_are_valid[($i-1)] = true;
            
        
    
    else
    
        print 'Image must be a valid image under 10 MB (Make sure you submitted an image)<br />';
        $files_are_valid[($i-1)] = false;
    


if($files_are_valid[0] == true) 
    $all_valid = true;

else 
    $all_valid = false;

【问题讨论】:

【参考方案1】:

这是一个 Windows 服务器(路径中的斜杠将其泄露)。所以需要通过 GoDaddy 权限面板设置权限。您需要为上传目录设置读/写权限。通过 FTP 设置 777 并不能在 Windows 服务器上解决问题。

http://support.godaddy.com/help/article/6481/setting-directory-permissions-with-windows-hosting-accounts/

【讨论】:

以上是关于PHP move_uploaded_file 权限被拒绝的主要内容,如果未能解决你的问题,请参考以下文章

move_uploaded_file 无法打开流:权限被拒绝 - Mac

Ubuntu Server不会使用PHP“move_uploaded_file”上传文件

在我完成所有配置后,move_uploaded_file给出“无法打开流:权限被拒绝”错误

提交的文件没有使用move_uploaded_file(),php移动到新文件夹

777 文件夹上的 move_uploaded_file 权限被拒绝

move_uploaded_file 无法打开流和权限被拒绝错误