压缩并下载


Zip and Download

我用这段代码压缩和下载PHP文件浏览器启动ZIP下载,但已损坏。当我试图打开浏览器时,说的格式文件未知或损坏。

有什么要解决的技巧吗?

$files = array('1.png', '2.png');
$zipname = 'file.zip';
$zip = new ZipArchive;
$zip->open($zipname, ZipArchive::CREATE);
foreach ($files as $file) {
$zip->addFile($file);
}
$zip->close();
header('Content-Type: application/zip');
header('Content-disposition: attachment; filename=file.zip');
header('Content-Length: ' . filesize($zipfilename));
obclean();
flush();
readfile($zipname);

问题出在这一行:

header('Content-Length: ' . filesize($zipfilename));
obclean();

更改为:

header('Content-Length: ' . filesize($zipname));
ob_clean();

将此行更改为工作:

来自:

$zip->addFile($file);

收件人:

$zip->addFromString(basename($file),  file_get_contents($file));