我有一個項目,用戶可以將多個文件添加到購物車,然後將它們壓縮到一個文件中並一次下載所有文件。PHP ZipArchive限於10MB
看來雖然一旦購物車變大,然後10MB它不能創建zip文件。 我以爲這可能是因爲upload_max_filesize,但設置爲200米,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
好吧,縮小它。路徑名已損壞,並且由於文件不存在而導致zip錯誤。看起來我需要更好的錯誤檢查。 – Cvongrim