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 ファイルがアップロードされないようにするサーバー設定はありますか?