0

現在、PHP CodeIgniter フレームワークを使用しており、画像のアップロード フォームがあります。小さなファイルをアップロードすると、スクリプトは問題なく実行されますが、たとえば 3 MB のファイルをアップロードするように選択すると、スクリプトは実行されず、ページが表示され、「ページの読み込みに失敗しました」と表示されます。php ログと apache ログを確認しました。PHP ログでこのエラーが発生しました。

PHP Fatal error: 
Allowed memory size of 33554432 bytes exhausted
(tried to allocate 20736 bytes) in
/Users/Desktop/localhost/system/libraries/Image_lib.php on line 1155

CodeIgniter の構成ファイルからいくつかの設定を変更する必要があると思いますが、これは本当の仮定ですか?

これは私の現在の PHP 用の php.ini であり、失敗の原因にはならないと思います。

; Maximum allowed size for uploaded files. 
upload_max_filesize = 32M

; Must be greater than or equal to 
upload_max_filesize post_max_size = 32M

max_execution_time = 30     ; Maximum execution time of each script, in seconds
max_input_time = 60 ; Maximum amount of time each script may spend parsing request data
memory_limit = 32M      ; Maximum amount of memory a script may consume (8MB)

しかし、ページが読み込まれず、失敗します。送信をクリックするとすぐに処理に失敗します。

事前に感謝します。

編集:

現在、memory_limitとともに、themt o 64Mを変更した後にこのエラーが発生します

PHP Fatal error:  Allowed memory size of 67108864 bytes
exhausted (tried to allocate 20736 bytes) in
/Users/Desktop/localhost/system/libraries/Image_lib.php on line 1155
4

2 に答える 2

3

ファイルサイズが32MBを超えるため(少なくとも33554432バイトであるため)、これらのディレクティブは両方とも失敗します。

; Maximum allowed size for uploaded files. 
upload_max_filesize = 32M

; Must be greater than or equal to 
upload_max_filesize post_max_size = 32M

さらに、memory_limitを増やす必要があります。

于 2013-03-21T16:57:06.923 に答える
1

32Mのメモリ制限があり、より多くのメモリを割り当てようとしたため、スクリプトが失敗しました。おそらく、画像を大きくする必要があります(image_gdは、大量のメモリを消費するメモリにビットマップを保持します)。あなたにできることは

  • gdの代わりにimage_magickを使用する
  • memory_limitを増やします(つまり64M以上)
于 2013-03-21T16:55:11.337 に答える