3

PHP 経由で ZIP ファイルをアップロードしようとすると、ファイルサイズが 0 になります。

それ以外はすべて機能します: 7z、rar、png、xml

例(テスト用にファイルサイズと場所を出力します):

File Location: /tmp/phpKNortG/feba81fed1ff5d2c04aa0c42975eb94f.7z
Filesize: 1284


File Location: /tmp/phpEWrmLT/feba81fed1ff5d2c04aa0c42975eb94f.zip
Filesize: 0

私のフォームにenctype="multipart/form-data"はファイルがあり、アップロードするには大きすぎません。(メモリ制限を 128 MB に設定して、そうでないことを確認しました)

ini_set('memory_limit', '128M');
set_time_limit(0);

$session_id = "3423840093480344";

mkdir('uploaded_files/' . $session_id);

for($i = 0; $i < count($_FILES['backup_file']['name']); $i++) {
    $file_name = $_FILES['backup_file']['name'][$i];
    $file_type = $_FILES['backup_file']['type'][$i];
    $file_error = $_FILES['backup_file']['error'][$i];
    $file_size = $_FILES['backup_file']['size'][$i];
    $file_tmp = $_FILES['backup_file']['tmp_name'][$i];

    print($file_name . "<br />");
    print($file_type . "<br />");
    print($file_error . "<br />");
    print($file_size . "<br />");
    print($file_tmp . "<br />");

    if($file_error != 0) {
        echo "Error-Code: ".$file_error;
        continue;
    }

    move_uploaded_file($file_tmp, 'uploaded_files/' . $session_id);
}

次のコードはこれを出力します。

feba81fed1ff5d2c04aa0c42975eb94f.zip
application/zip
0
0
/tmp/phpEWrmLT

MIME タイプも認識しますが、ファイルのサイズは常に 0 バイトです。(move_uploaded_file で移動する前でも)

.zip ファイルがアップロードされないようにするサーバー設定はありますか?

4

1 に答える 1

1

memory_limit 設定は、ファイルのアップロードには影響しません。

post_max_size と upload_max_filesize の値は? .zip ファイルサイズはこれらの値とどのように比較されますか?

于 2012-11-21T13:43:34.660 に答える