0

imagecreatefromjpeg() 函数说文件不存在,但是当我使用 file_exists() 函数检查时,它说存在。

PHP代码就像,

    $path = "/home/content/html/uploads/test.jpg";

    if(file_exists($path)) {
        echo "Exists!";
    } else {
        echo "File Not Exists!";
    }    

    $resize = new Resize($path, $img['name']);
    $resize->resizeImage($size[0], $size[1]);
    $resize->preview();

我得到了这样的输出,

Exists!
Warning: imagecreatefromjpeg(/home/content/html/uploads/test.jpg) [function.imagecreatefromjpeg]: failed to open stream: No such file or directory in /home/content/html/includes/resize.php on line 20

目录结构,

  • /html
    • /上传
      • 测试.jpg
    • 索引.php
4

1 回答 1

0

好的,我得到了解决方案。但首先我要感谢所有帮助我的人。

这是一个非常奇怪的问题。在服务器中,imagecreatefromjpeg() 仅在存在没有“空格”的文件路径时才有效。

如果我使用 rawurlencode() 将空格转换为 %20,那么问题仍然存在,所以我要做的是,在文件上传期间使用 str_replace() 函数将空格转换为其他内容。

str_replace(" ", "_", $filename);

在本地主机上,我使用“test.jpg”文件,但在服务器上有许多不同的文件,名称中有空格,所以我在 qustion 中使用“test.jpg”。(对此感到抱歉)

于 2013-03-16T14:08:23.960 回答