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移动到新文件夹