0

途中で起こったことを共有したいと思います。

私は自分のウェブサイトに画像をアップロードし、その後いくつかの親指を作成しました。比較的大きなファイル(約5MBのjpeg画像)から自動的に切り抜かれる親指、そして私はそれを何度も行っていました。突然、大きなファイルをアップロードして、トリミングされた画像(元の画像ではない)から親指を立てると、次のエラーが発生しました。

Fatal error:  Allowed memory size of 134217728 bytes exhausted (tried to allocate 22464 bytes)

128Mbのメモリをどのように使い果たすことができますか?

4

2 に答える 2

1

主な問題は、使用可能なメモリよりも多くのメモリを使用していたことです。もちろん、最初に確認するのは、大きすぎない正しいファイルをアップロードしているかどうかです。はい、3Mbです。では、どちらが問題でしたか?

通常、この種のエラーは、使用可能なメモリを完全に使い果たす正確な行に付随します。私の場合、これの中にありました:

$orig = imagecreatefromjpeg($fullPathFilename);

そのため、新しいイメージをメモリに割り当てるときにサーバーがクラッシュしました。そして、これが頭に浮かびました。以前の割り当て呼び出しを解放しませんでした。前述のように、私はたまたま複数のサイズの画像からたくさんの親指を生成しました。そして愚かな私、私はそれらのどれも解放しませんでした。したがって、複数の画像をトリミング/サイズ変更/変更したときにこのエラーが発生した場合は、コード内でこの呼び出しを確認してください。

imagedestroy($orig);

つまり、要約すると。

imagedestroy()関数が見つからない場合は、問題が見つかっている可能性があります。

于 2012-09-04T12:05:39.640 に答える
1

私もこの問題に遭遇しました

ページの実行が停止しないように、次の変数を増やします。

max_input_time
memory_limit
max_execution_time

乾杯

于 2012-09-04T12:25:30.460 に答える