電子書籍の厳選無料作品が豊富!

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)
}
}
}

アドバイスいただければ幸いです。

A 回答 (2件)

upfileが配列(同名で複数のinput要素がある)状態で提示するのは無駄が多いので、form側で「ひとつだけ」にしてから、html(form要素)と一緒に転記してもらった方がよかったですね。



>["error"]=>
>array(5) {
>[0]=>
>int(2)

エラーコードが 2(UPLOAD_ERR_FORM_SIZE)なので、form要素が提示されないと意味がありませんしねww
    • good
    • 0

php側でなければ、例えばApacheならconfのLimitRequestBodyがかかっているとかでしょうか。



アップロードに関しては分からないですが、エラーログを見ると原因が記録されてたりします。

この回答への補足

ご回答ありがとうございます。

LimitRequestBodyは、明示的に0(無制限)という設定を入れています。
php_error_logには、何も記録されていません…。

八方ふさがり状態です。

補足日時:2015/01/16 00:50
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!