0

画像を取得し、タイプとファイルサイズをチェックしてから、サイズ変更されたマスター画像のコピーを 2 つ作成する PHP スクリプトがあります。3 つの画像はすべてサーバーに保存されます。私はすべてがうまくいったという印象を受けました。私はスクリプトをテストしていましたが、1 つの jpg 画像で、Firefox によって「コンテンツ エンコーディング エラー」というエラーがスローされました。いくつか読んだところ、これは Firefox の問題であることが示唆されましたが、IE と Chrome でテストしたところ、同様のエラーが発生しました。

奇妙なことに、一部の .jpg ファイルは機能し、他のファイルは機能しません。スクリプトが 2 番目のサイズ変更されたコピーをマスターとしてエンコードするようになるとエラーが発生し、最初のコピーが指定されたフォルダーに出力されます。さらに読み取りを行った後、画像自体が破損していないことを確認しました。スクリプトを完全に完了できる .jpg とそうでない .jpg の唯一の違いは、Windows 内で失敗したもののプロパティを表示すると、以前のカメラなど、より多くのデータを運ぶように見えたことです。型番など

このエラーがスローされる原因を知っている人はいますか?

編集

これが私が使用しているコードです。

$imgsrc = imagecreatefromjpeg($file);
imagecopyresampled($thbout,$imgsrc,0,0,0,0,$thbwid,$thbhei,$width,$height);
imagejpeg($thbout,$thbpath,80);
imagedestroy($thbout);
imagecopyresampled($optout,$imgsrc,0,0,0,0,$optwid,$opthei,$width,$height);
imagejpeg($optout,$optpath,80);
imagedestroy($optout);

今夜少し遊んだ後、コードをこれに切り替えることで動作しました。(最初に大きなファイルを作成するように切り替えます)

$imgsrc = imagecreatefromjpeg($file);
imagecopyresampled($optout,$imgsrc,0,0,0,0,$optwid,$opthei,$width,$height);
imagejpeg($optout,$optpath,80);
imagedestroy($optout);
imagecopyresampled($thbout,$imgsrc,0,0,0,0,$thbwid,$thbhei,$width,$height);
imagejpeg($thbout,$thbpath,80);
imagedestroy($thbout);

だから、私の新しい質問は、なぜこのように振る舞うのですか?

4

0 に答える 0