【问题标题】:PHP -- Can't view image after uploading it to created directoryPHP - 将图像上传到创建的目录后无法查看
【发布时间】:2018-05-30 14:21:25
【问题描述】:

在浏览了这里和 Google 上的几篇帖子后,我还没有找到解决问题的方法。我正在制作一个用户可以上传图片的网站。如果他们的图像不存在个人目录,我会创建一个并将图像放入其中。问题是,在创建目录并且图像在里面之后,我无法查看它,因为一旦我导航到该文件夹​​并尝试打开它,我就没有正确的权限。我见过几个人遇到同样的问题,但我找到的解决方案都不适合我。

我知道我需要检查大小、类型、是否已经存在等。此时,我只是想查看图像。

编辑:将权限从 0777 更改为 0755,但问题仍然存在。
EDIT2:fileperms 在上传的图片上运行时返回 33206。

if(isset($_POST["submit"])) 
    {
        $path = "images/$user_id";

        if(!file_exists($path))
        {
            mkdir($path, 0755, true);
        }

        $target_dir = "$path/";
        $target_file = $target_dir . basename($_FILES["fileToUpload"]["name"]);
        $uploadOk = 1;
        $imageFileType = strtolower(pathinfo($target_file,PATHINFO_EXTENSION));

        $check = getimagesize($_FILES["fileToUpload"]["tmp_name"]);
        if($check !== false) 
        {
            echo "File is an image - " . $check["mime"] . ".";
            $uploadOk = 1;
        } 
        else 
        {
            echo "File is not an image.";
            $uploadOk = 0;
        }

        if(move_uploaded_file($_FILES["fileToUpload"]["tmp_name"], $target_file))
        {
            chmod($path . "/" . $_FILES["fileToUpload"]["name"], 0755); 
            echo "The file was upload successfully.";   
        }
        else
        {
            echo "There was an error with the upload.";
        }
    }

【问题讨论】:

  • 目录权限应该设置为0755而不是0777
  • 感谢您的建议。我已经进行了这些更改,但我仍然无法查看图像。
  • 所以上传的时候可以看到文件已经上传到文件夹了?
  • 是的,图片在文件夹中,但是当我尝试打开它时,却被告知我没有正确的权限来查看它。
  • 您是在本地查看还是在服务器上查看?

标签: php image-uploading file-permissions


【解决方案1】:

如果有人发现此问题并遇到同样的问题,问题是文件所在的临时文件夹具有阻止您查看它的权限。我通过编辑我的 php.ini 文件解决了这个问题,并将 upload_tmp_dir 设置为我在桌面上创建的具有完全权限的某个文件夹。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-07-31
    • 2021-05-25
    • 2019-02-11
    • 1970-01-01
    • 2014-03-18
    • 2013-06-28
    • 2016-02-05
    • 2018-02-04
    相关资源
    最近更新 更多