フォームからファイルをアップしているのですが
アップできるファイルとできないファイルがあります。
例えば a.pdf はアップできるが b.pdf はアップできない。
と言う状態です。
アップできないファイルは
他の処理を書かずに、phpの最初に print $_FILES['hoge']['size']; としても「0」と表示されます。
$_FILES['hoge']['name'] はきちんとファイル名を表示します。
アップできるファイルはきちんとサイズを返してくれますし
保存もできるのでコードが間違っているとは思えないのですが.....
思い当たる原因を教えてください。
よろしくお願いします。
一応
サーバの容量は沢山空いておりアップするスペースがないと言うことはありません。
アップできないファイルは巨大だからということもありません。
ファイルが空と言うことはありません。
php.ini の upload_max_filesize は何Mバイトに設定されていますか?
これを超えるサイズのファイルはアップすることが出来ません。
php.ini の upload_max_filesize は何Mバイトに設定されていますか?
これを超えるサイズのファイルはアップすることが出来ません。
ありがとうございます。
この値より少ないファイルでも無理でした。
サーバにApacheをお使いの場合、Apacheの方の設定も検討してみましたか?
おそらくデフォルトでは2MB, 20MBに設定されていたような覚えがあります。
[私もここでつまずきました。]
ありがとうございます。
現在再確認しています。
アップロードファイルのサイズ制限に問題がないと仮定します。
そういった中でも僕も昔同じようなことを経験したことがあります。
たまたまファイルのバイナリ中に、ウィルスチェックパターンに引っかかっているバイト列があり、それが原因でファイヤウォール等により送信中に切断されてしまうという現象に出会ったことがあります。
その場合は回避策としてファイアウォールの設定を確認するか、もしくはzip圧縮し直すなどとして全く別のバイナリにすることで回避が出来る可能性もあります。
ありがとうございます。
まず、基本的なことですが、確認する手順として、
apacheのphp.iniの下記設定
・upload_max_filesize
・post_max_size
・memory_limit
HTML(input typeタグ)の MAX_FILE_SIZEの設定
value値は設定されていますか?
name値とpost値は同じですか?
その他
スクリプトを見ないとわかりませんが、スクリプトがおかしいとか。
ファイヤーフォール関連、そもそもファイルが壊れてる等。
ありがとうございます。
MAX_FILE_SIZE は設定していません。
ファイヤーフォール関連はわかりません。
ファイルはpdfとして開けるファイルです。
>アップできるファイルはきちんとサイズを返してくれますし
>保存もできるのでコードが間違っているとは思えないのですが.....
>print $_FILES['hoge']['size']; としても「0」と表示されます。
たぶん、コードが間違っています。
print $_FILES['hoge']['error'];
で確認してみてはどうでしょうか?
ありがとうございます。
「4」でした。
ありがとうございます。
この値より少ないファイルでも無理でした。