以下是独家新闻:我需要能够使用PHP脚本创建文件夹,并将图像文件上传到这些文件夹。这是我的代码:
创建目录:
mkdir('[path]/images/foldername');
上传图片:
if ($_FILES["file"]["error"] > 0 || $_FILES["file"]["type"] != "image/jpeg") // file must be valid and .jpg
{
echo "Error: " . $_FILES["file"]["error"] . "<br />";
}
else
{
echo "Upload: " . $_FILES["file"]["name"] . "<br />";
echo "Type: " . $_FILES["file"]["type"] . "<br />";
echo "Size: " . ($_FILES["file"]["size"] / 1024) . " Kb<br />";
echo "Stored in: " . $_FILES["file"]["tmp_name"] . '<br />';
if(file_exists($path ."/" . $_FILES["file"]["name"]))
{
echo $_FILES["file"]["name"] . " already exists. ";
}
else
{
move_uploaded_file($_FILES["file"]["tmp_name"], $path ."/" . $_FILES["file"]["name"]);
echo "Stored in: " . $path ."/" . $_FILES["file"]["name"];
}
}
FTP编辑器会出现以下错误:
[L] DELE 20.jpg
[L] 550 Could not delete imagename.jpg: Permission denied
然后
[L] RMD foldername
[L] 550 Can't remove directory: Directory not empty
我尝试在FTP编辑器中更改权限,但出现此错误:
[L] SITE CHMOD 777 [路径] / foldername
[L] 550无法更改[path] / foldername上的perms:不允许操作
我尝试使用SSH和Putty删除文件,但这也不起作用。
请帮助我!
答案 0 :(得分:4)
移动上传的文件后,请尝试执行以下操作:
@chmod($path ."/" . $_FILES["file"]["name"], 0777);
或者其他什么。您可能希望将权限更改为更好的内容。
答案 1 :(得分:3)
看起来您的PHP安装以与FTP会话不同的用户身份运行。因此,您的php上传脚本可以创建您的ftp用户无法触摸的文件; - )。
基本上有三种方法可以解决这个问题:
答案 2 :(得分:2)
您可以更改运行FTP服务器的用户帐户,以使用与PHP脚本相同的用户(可能是www-data或httpd)