簡體   English   中英

PHP 下載 ZIP 文件的腳本損壞文件

[英]PHP download script for ZIP files corrupting the file

這是我的代碼:

header('Content-Description: File Transfer');
header('Content-Type: application/octet-stream');
header('Content-Disposition: attachment; filename='.$filename.'.zip');
header('Content-Transfer-Encoding: binary');
header('Expires: 0');
header('Cache-Control: must-revalidate, post-check=0, pre-check=0');
header('Pragma: public');
header('Content-Length: ' . filesize($file));
ob_clean();
flush();
@readfile($file);
exit;

$file等於我服務器上的文件位置(該位置在 public_html 目錄之外)

下載文件后,我打開文件發現 zip 存檔損壞。 我可以看到 zip 中所有文件的列表,但我無法打開它們。 當我通過我的 FTP 客戶端下載文件時,存檔沒有損壞。 我在腳本之前或之后沒有任何空格。 什么可能導致此文件損壞?

編輯:

我發現了問題:zlib 壓縮損壞了文件,所以我添加了ini_set('zlib.output_compression', 'Off'); 到腳本的開頭

這里的問題是您沒有發送正確的內容范圍,因此報告給瀏覽器時文件大小不正確。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM