【发布时间】:2016-10-21 01:20:44
【问题描述】:
我正在做一个项目,但是在测试上传图片功能时,它一直给我错误。该网站位于 Portal.website.com 链接上(所以不是 www,不知道是否重要)
无论如何,这是我得到的消息:
警告:move_uploaded_file(img/uploads/IMG_20160402_244056496.jpg) [function.move-uploaded-file]:无法打开流:/home/xxx/domains/website.com/public_html/portal 中没有这样的文件或目录/artikeltoevoegen.php 第 33 行
和
警告:move_uploaded_file() [function.move-uploaded-file]:无法在 /home/xxx/domains/website.com/public_html 中将“/tmp/phpf277z2”移动到“img/uploads/IMG_20160402_244056496.jpg” /portal/artikeltoevoegen.php 第 33 行
这是 php 部分,表单本身非常标准并且可以完美运行
if (isset($_POST['uploadArticle']))
{
$title = $_POST['title'];
$article = $_POST['article'];
$files = $_FILES['files'];
$valid_formats = array("jpg", "png", "gif", "zip", "bmp");
$max_file_size = 1024*1000; //1000 kb
$count = 0;
foreach ((array) $_FILES['files']['name'] as $f => $name)
{
if ($_FILES['files']['error'][$f] == 4)
{
continue; // Skip file if any error found
}
if ($_FILES['files']['error'][$f] == 0)
{
if ($_FILES['files']['size'][$f] > $max_file_size)
{
$message[] = "$name is too large!.";
continue; // Skip large files
}
elseif( ! in_array(pathinfo($name, PATHINFO_EXTENSION), $valid_formats) )
{
$message[] = "$name is not a valid format";
continue; // Skip invalid file formats
}
else
{
// No error found! Move uploaded files
if(move_uploaded_file($_FILES["files"]["tmp_name"][$f],"img/uploads/".$name))
{
$count++; // Number of successfully uploaded file
echo $count;
}
}
}
}
}
【问题讨论】:
-
您是否检查过文件夹
/home/xxx/domains/website.com/public_html/portal/img/uploads确实已经存在?它不会以这种方式为您创建文件夹。 -
确实如此,我自己创建的
-
什么是权限?你能发布
namei -l /home/xxx/domains/website.com/public_html/portal/img/uploads用户的输出吗?网络服务器正在运行的用户需要在路径中的所有目录上+x,在最后一个目录上+x -
恰好是权限是的。将其从 755 更改为 777。从未遇到过问题,但我现在会记住它。
标签: php