2015-07-10 187 views
2

binaryhere是我的問題 我正在使用php,我創建一個Zip歸檔文件thx到ZipArchive庫。 我用我需要的所有文件完成它並將其保存在我的服務器上。 然後我想讓它由當前用戶下載,這裏是我寫的:正在下載損壞的.zip(php)

if (file_exists($zip_archive)) 
{ 
    header("Pragma: no-cache"); 
    header("Expires: 0"); 
    header("Cache-Control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0"); 
    header("Cache-Control: public"); 
    header("Content-Description: File Transfer"); 
    header("Content-type: application/force-download"); 
    header("Content-Disposition: attachment; filename=\"".$zip_archive."\""); 
    header("Content-Transfer-Encoding: binary"); 
    header("Content-Length: ".filesize($zip_archive)); 
ob_end_flush(); 
    readfile($zip_archive); 
} 

但是當我下載的zip壓縮文件,我可以看到裏面的文件,但是當我試圖提取他們的錯誤會告訴我該文件可能已損壞。

所以我試圖打開保存在服務器上的zip存檔,並且沒有錯誤出現。

你有什麼想法來幫助我嗎?

感謝您的任何幫助。

(我改變fichier爲二進制,但問題仍然存在:壓縮文件結束...)

+0

「Content-Transfer-Encoding:fichier」是做什麼的?你可以嘗試使用'Content-Transfer-Encoding:binary' – insanebits

回答