PHP拒绝上传图片

PHP拒绝上传图片,php,Php,我正在做一个项目,但在测试上传图片功能时,它一直给我错误。该网站位于Portal.website.com链接上(所以不是www,如果这很重要的话不知道) 无论如何,我得到的信息是: 警告:move_uploads_文件(img/uploads/img_20160402_244056496.jpg)[function.move uploads file]:无法打开流:第33行的/home/xxx/domains/website.com/public_html/portal/artikeltovoe

我正在做一个项目,但在测试上传图片功能时,它一直给我错误。该网站位于Portal.website.com链接上(所以不是www,如果这很重要的话不知道)

无论如何,我得到的信息是:

警告:move_uploads_文件(img/uploads/img_20160402_244056496.jpg)[function.move uploads file]:无法打开流:第33行的/home/xxx/domains/website.com/public_html/portal/artikeltovoegen.php中没有此类文件或目录

警告:move_upload_file()[function.move upload file]:无法将第33行的“/tmp/phpf277z2”移动到/home/xxx/domains/website.com/public_html/portal/artikeltovoegen.php中的“img/uploads/img_20160402_244056496.jpg”

这里是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;
                }
            }
        }
    }
}

由于错误提示您传递到移动\u上传的\u文件的路径不存在

如果img文件夹与调用move_Upload_file的php文件位于同一目录中,请尝试使用相对url:

if(move_uploaded_file($_FILES["files"]["tmp_name"][$f],"./img/uploads/".$name))

通过在img前面添加.

,因为错误表明要移动上传的文件的路径不存在

如果img文件夹与调用move_Upload_file的php文件位于同一目录中,请尝试使用相对url:

if(move_uploaded_file($_FILES["files"]["tmp_name"][$f],"./img/uploads/".$name))

通过在img前面添加.

好的,所以碰巧是我试图写入的文件夹的服务器权限。我把它从755改成了777,现在它可以正常工作了


希望有人能使用此信息

好吧,这恰好是我试图编写的文件夹的服务器权限。我把它从755改成了777,现在它可以正常工作了


希望有人能使用此信息

您是否尝试过输入完整的url?也不走运,不幸的是您是否尝试输入完整的url?也不走运,不幸的是您是否检查了文件夹
/home/xxx/domains/website.com/public\u html/portal/img/uploads
是否确实存在?它不会以这种方式为您创建文件夹。它是,我自己创建的。权限是什么?你可以发布
namei-l/home/xxx/domains/website.com/public_html/portal/img/uploads
用户的输出吗?Web服务器正在按需运行,路径中的所有目录上都有+x,上一个目录上的
+x
恰好是权限是。将其从755更改为777。我从来没有遇到过这个问题,但我现在会记得。你检查过文件夹
/home/xxx/domains/website.com/public\u html/portal/img/uploads
是否已经存在了吗?它不会以这种方式为您创建文件夹。它是,我自己创建的。权限是什么?你可以发布
namei-l/home/xxx/domains/website.com/public_html/portal/img/uploads
用户的输出吗?Web服务器正在按需运行,路径中的所有目录上都有+x,上一个目录上的
+x
恰好是权限是。将其从755更改为777。我从来没有遇到过这个问题,但现在我会记住的。chmod很重要,chown也很重要;确保同样拥有lucaschmod文件夹的是web服务器用户和组,chown也很重要;确保文件夹的所有者是web服务器用户和组