使用php下载zip文件夹
问题描述:
我想下载zip文件夹。使用php下载zip文件夹
这里是我的代码
header('Content-Type: application/zip');
header('Content-disposition: attachment; filename=filename.zip');
header('Content-Length: ' . filesize($zipfilename));
$files = array('../upload/ES:AIJ_168/M:MSW.doc','../upload/ES:AIJ_168/M:MSW.pdf');
$zipname = 'file.zip';
$zip = new ZipArchive;
$zip->open($zipname, ZipArchive::CREATE);
foreach ($files as $file) {
$zip->addFile($file);
}
$zip->close();
readfile($zipname);
?>
,但是当我运行这个script.It下载只是一个空文件夹上传。 我不知道为什么会发生这种情况,请任何人帮我解决。
答
我在你的问题
1)你发送的内容长度的文件创建
2)之前,当你取你正在使用$zipfilename
文件大小看见三个点,但是当你打开用于添加您使用的文件的zip文件$zipname
。
3)您在文件名中使用冒号(:
)。我不确定在unix上的这种用法,但是你不能在windows上用冒号命名文件。
我相信,代码将是这样的:
header('Content-Type: application/zip');
header('Content-disposition: attachment; filename=filename.zip');
$files = array('../upload/ES-AIJ_168/M-MSW.doc','../upload/ES-AIJ_168/M-MSW.pdf');
$zipname = 'file.zip';
$zip = new ZipArchive;
$zip->open($zipname, ZipArchive::CREATE);
foreach ($files as $file) {
$zip->addFile($file);
}
$zip->close();
header('Content-Length: ' . filesize($zipname));
readfile($zipname);
PS:我用减号(-
)而不是冒号在文件名
你尝试调试文件,看它没有任何错误信息的标题?错误报告是否打开? –
错误是:!无法创建上传\ ES:AIJ_168 \ M:MSW.doc 文件名称,目录名称或卷标语法不正确。 !试图纠正无效的文件名 –
看看这个:http://*.com/questions/2088267/download-of-zip-file-runs-a-corrupted-file-php?rq=1 – Matheno