3

クライアントの場合、複数のファイル(画像)をアップロードし、サイズを変更し、一時フォルダーに保存してから、後で目的の場所に移動する簡単なスクリプトを作成しました。

Imagickが利用できないため、サイズ変更はPHPのGDを使用して行われます。

これらの画像は1枚あたり約2/4MBで、クライアントは1回のショットで約30枚の画像をアップロードします。HTML5のmultiple=""属性を使用しましたが、これはすべて正常に機能します。

テストでは、Windows標準の壁紙画像を使用したため、すべて正常に機能しました。

問題の原因が見つかりません。複数の画像をアップロードすると、スクリプトはデバッグに失敗し、2番目の画像をアップロードするが、サイズは変更されないことを通知します。

それぞれ約105724352バイトの画像のメモリ使用量を確認しました。

私のPHPini設定:

max_execution_time = 300     
max_input_time = 600    
memory_limit = 200M      

したがって、2番目の画像で、メモリが制限に達し、スクリプトが停止していることがわかります。あれは正しいですか?

もしそうなら、メモリ制限をアップグレードするのはどのくらい賢明ですか?

前もって感謝します!

編集:

GD関数imagecreatefromjpegは3500px幅よりも大きい解像度のファイルを処理できないようですが、私のファイルは5000px幅よりも大きくなっています。

誰かがこれを回避するための回避策を持っていますか?この時点で、クライアントがこれらのイメージに非常に多くのメモリを必要とする場合は、クライアントを共有ホストに配置するのが賢明かどうか疑問に思っています。

4

1 に答える 1

3

したがって、2番目の画像で、メモリが制限に達し、スクリプトが停止していることがわかります。あれは正しいですか?

(** nixシステム)の下のApacheエラーログをチェックして/var/log/apache2/error.log、それが本当に問題であるかどうかを確認します。

もしそうなら、メモリ制限をアップグレードするのはどのくらい賢明ですか?

1つのスクリプトで複数の画像操作を処理しないでください。それぞれに対してajaxクエリを作成し、別々のインスタンスで処理します。

于 2012-06-13T15:01:54.673 に答える