私は、ユーザーがカートに複数のファイルを追加してから、それらを1つのファイルにまとめて一度にダウンロードできるプロジェクトがあります。PHP ZipArchiveは10MBに制限されています
カートが大きくなって10MBになるとすぐに、ZIPファイルを作成することはできません。 これはupload_max_filesizeのためかもしれないと思っていましたが、それは200mに設定され、post_max_sizeも同じです。
この制限は何ですか?
ここに私のコードです。 ランダムなファイル名を作成し、カートのループをチェックして各ファイルを追加します。
// create object
$zip = new ZipArchive();
$filename = "loggedin/user_files/ABX-DOWNLOAD-".rand(1, 1000000).".zip";
while (file_exists($filename)):
$filename = "loggedin/user_files/ABX-DOWNLOAD-".rand(1, 1000000).".zip";
endwhile;
// open archive
if ($zip->open('../'.$filename, ZIPARCHIVE::CREATE) !== TRUE) {
die ("Could not open archive");
}
// add files
//echo $all_audio;
foreach($audio_ids as $audio_id){
if($audio_id != ""){
$audio = Audio::find_by_id($audio_id);
$selected_category = Categories::find_by_id($audio->category_id);
$selected_sub_category = Sub_Categories::find_by_id($audio->sub_category_id);
$selected_sub_sub_category = Sub_Sub_Categories::find_by_id($audio->sub_sub_category_id);
$f = "uploads/mp3/".$selected_category->category_name."/".$selected_sub_category->sub_category_name."/".$selected_sub_sub_category->sub_sub_category_name."/".$audio->media_path;
$zip->addFile($f) or die ("ERROR: Could not add file: $f");
}
}
// close and save archive
$zip->close() or die("ERROR: COULD NOT CLOSE");
}
いくつかのコードは、私たちがあなたをより良く助けるのに役立ちます。 –
実際に同じファイルを何度もアップロードしてそれをzipに追加した後、私は10MB以上のzipを作成することができました。それは問題ではないように見えます。 – Cvongrim
さて、それを絞りました。ファイルが存在しないため、パス名が壊れていて、ジップエラーが発生しました。私はより良いエラーチェックが必要なように見えます。 – Cvongrim