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
    • / uploads
      • test.jpg
    • index.php
4

1 に答える 1

0

OK、解決策がわかりました。しかし、最初に私を助けてくれたすべての人に感謝したいと思います。

それは非常に奇妙な問題です。サーバーでは、imagecreatefromjpeg()は、「スペース」のないファイルパスがある場合にのみ機能します。

rawurlencode()を使用してスペースを%20に変換すると、問題が解決しないため、ファイルのアップロード中にstr_replace()関数を使用してスペースを別のものに変換する必要があります。

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

ローカルホストでは「test.jpg」ファイルを使用していますが、サーバーでは名前にスペースが含まれるさまざまなファイルが多数あるため、質問で「test.jpg」を使用します。(そのために残念)

于 2013-03-16T14:08:23.960 に答える