なぜ mdb ファイルに対して完全に機能しないのかはわかりません。データを返すことさえありません。
次の HTML フォームがあります。
if(!isset($_GET['action'])) {
?>
<form action="<?php echo $_SERVER['PHP_SELF']; ?>?page=mypage&action=upload" method="POST" enctype="multipart/form-data">
<input name="MAX_FILE_SIZE" value="64000" type="hidden" />
<label for="data-file">Please select file to upload:</label>
<input id="data-file" type="file" size="20" name="data-file" />
<input type="submit" value="Upload" name="submit" />
</form>
<?php
} else {
switch($_GET['action']) {
case 'upload':
var_dump($_POST);
var_dump($_FILES);
break;
default:
break;
}
}
mdb ファイルを選択して送信をクリックすると、2 つの空の配列が返されます。
'array(0) { } array(0) { }'
しかし、Excel ファイルや画像ファイルなどの他のファイルを選択すると、次のようになります。
array(1) { ["submit"]=> string(6) "Upload" }
array(1) { ["data-file"]=> array(5) { ["name"]=> string(18) "testing.png" ["type"]=> string(9) "image/png" ["tmp_name"]=> string(26) "C:\WINDOWS\Temp\php951.tmp" ["error"]=> int(0) ["size"]=> int(110533) } }
上記がなぜ起こっているのか誰にも分かりますか?
また、アップロードしようとしていた mdb ファイル内のほとんどのデータを削除して、ファイルサイズを 1 MB 未満に減らし、再度アップロードしたところ、うまくいきました。サーバーでphp.iniを確認しましたが、upload_max_filesizeは64Mに設定されており、元のmdbファイルサイズは14MBです。
エラーでさえ、アップロードもデータも返さない理由がわかりません。これはイライラします。
助けてください!