2

なぜ 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です。

エラーでさえ、アップロードもデータも返さない理由がわかりません。これはイライラします。

助けてください!

4

2 に答える 2

1

多分それMAX_FILE_SIZEです。

MAX_FILE_SIZE 隠しフィールド (バイト単位) は、ファイル入力フィールドの前にある必要があり、その値は PHP が受け入れる最大ファイル サイズです。

http://www.php.net/manual/en/features.file-upload.post-method.php

そう、64000Byte / 1024 = 62,5 KB

MAX_FILE_SIZEフィールドを削除してみてください。

于 2012-08-14T12:26:11.800 に答える
0

サーバーの設定でしたが、

で設定を変更する必要がありましたphp.ini

確実に

memory_limit >= post_max_size >= upload_max_filesize

あなたのphp.ini

于 2012-08-15T14:02:07.453 に答える