我知道這個問題在這個論壇發佈了很多次,但相信我我已經嘗試了所有可能的解決方案建議,但它並沒有爲我工作。ZIP文件下載php讀取文件()錯誤
我試圖下載使用壓縮多個文件,但zip文件被下載的成功,它的腐敗,我在記事本打開它後遇到錯誤:
警告:ReadFile的(E:\下載/ IMG -20140831-WA0000.zip)[function.readfile]:未能打開流:在...
我嘗試了所有在論壇中提到的可能的解決方案,如頭檢查沒有這樣的文件或目錄,網頁服務器用戶對我創建ZIP文件的文件夾具有寫入權限,下載前進行錯誤檢查等,但它沒有任何問題d出來。
進行錯誤檢查後,我遇到了類似
錯誤創建ZIP文件:IMG-20140831-WA0000.zip
我的代碼片段:
function zipFilesDownload($file_names, $archive_file_name, $file_path) {
$zip = new ZipArchive;
if ($zip->open($archive_file_name, ZipArchive::CREATE) !== TRUE) {
exit("cannot open <$archive_file_name>\n");
}
foreach($file_names as $files) {
$zip->addFile($file_path . $files, $files);
}
if ($zip->close() === false) {
exit("Error creating ZIP file : " . $archive_file_name);
}
if (file_exists($archive_file_name)) {
header("Content-Description: File Transfer");
header("Content-type: application/zip");
header("Content-Disposition: attachment; filename=" . $archive_file_name . "");
header("Pragma: no-cache");
header("Expires: 0");
readfile("E:\Downloads/" . $archive_file_name);
ob_clean();
flush();
exit;
} else {
exit("Could not find Zip file to download");
}
}
$fileNames = array(
'D:\\xampp\htdocs\BE\Multimedia/' . $fullName,
'D:\\xampp\htdocs\BE\Decrypt/' . $decrypt_file
);
$zip_file_name = $actualName . '.zip';
$file_path = dirname("E:\Downloads") . '/';
zipFilesDownload($fileNames, $zip_file_name, $file_path);
請建議一些解決方案
'目錄名( 「E:\下載」)''返回 「E:\」'。如果你不使用'dirname()'會發生什麼? – 2015-04-05 07:37:02
另外,'$ actualName'從哪裏來? – 2015-04-05 07:42:32
@SevrriMOslen'$ actualName'是要下載的zipFile的名稱。例如。如果'$ actualName ='hello';'然後'$ zip_file_name = hello.zip' – 2015-04-05 15:09:50