- 締切済み
PHPでファイルアップローダー
PHPでファイルアップローダーを作成しましたが、サイズの大きなファイルがアップロードできなくて困っています。 具体的には、900MBのファイルアップロードはできますが、1.4GBになるとアップロードできていません。 設定値は下記のようにし、十分にとっているつもりです。なお、HTMLで表示した実際に使われている設定値です。 <?php echo 'memory_limit = ' . ini_get('memory_limit') . "<br />"; echo 'post_max_size = ' . ini_get('post_max_size') . "<br />"; echo 'upload_max_filesize = ' . ini_get('upload_max_filesize') . "<br />"; echo 'max_execution_time = ' . ini_get('max_execution_time') . "<br />"; echo 'max_input_time = ' . ini_get('max_input_time') . "<br />"; ?> ↓ memory_limit = 5120M post_max_size = 5120M upload_max_filesize = 5120M max_execution_time = 300 max_input_time = 300 $_FILEを確認すると、下記のようにファイル名以外空となっています。エラーコードが0で正常アップロードの判定になっているので、原因が分からず困っています。 array(1) { ["upfile"]=> array(5) { ["name"]=> array(5) { [0]=> string(24) "testfile.ISO" [1]=> string(0) "" [2]=> string(0) "" [3]=> string(0) "" [4]=> string(0) "" } ["type"]=> array(5) { [0]=> string(0) "" [1]=> string(0) "" [2]=> string(0) "" [3]=> string(0) "" [4]=> string(0) "" } ["tmp_name"]=> array(5) { [0]=> string(0) "" [1]=> string(0) "" [2]=> string(0) "" [3]=> string(0) "" [4]=> string(0) "" } ["error"]=> array(5) { [0]=> int(2) [1]=> int(4) [2]=> int(4) [3]=> int(4) [4]=> int(4) } ["size"]=> array(5) { [0]=> int(0) [1]=> int(0) [2]=> int(0) [3]=> int(0) [4]=> int(0) } } } アドバイスいただければ幸いです。
- みんなの回答 (2)
- 専門家の回答
みんなの回答
- agunuz
- ベストアンサー率65% (288/438)
upfileが配列(同名で複数のinput要素がある)状態で提示するのは無駄が多いので、form側で「ひとつだけ」にしてから、html(form要素)と一緒に転記してもらった方がよかったですね。 >["error"]=> >array(5) { >[0]=> >int(2) エラーコードが 2(UPLOAD_ERR_FORM_SIZE)なので、form要素が提示されないと意味がありませんしねww
- duke_kimura
- ベストアンサー率39% (53/134)
php側でなければ、例えばApacheならconfのLimitRequestBodyがかかっているとかでしょうか。 アップロードに関しては分からないですが、エラーログを見ると原因が記録されてたりします。
補足
ご回答ありがとうございます。 LimitRequestBodyは、明示的に0(無制限)という設定を入れています。 php_error_logには、何も記録されていません…。 八方ふさがり状態です。