可能的重复:
打开文件、写入文件、将文件另存为 zip 并流式传输给用户下载 https://stackoverflow.com/questions/2286639/open-file-write-to-file-save-file-as-a-zip-and-stream-to-user-for-download
我在上传文件夹中有一个 txt 文件,我需要在其中添加此文件并动态创建 ZIP,并提示用户下载应包含文本文件的 Zip 文件。我该如何执行此操作,而且需要哪些标头提示用户下载。任何人都可以帮助我吗?我使用了 PHP 手册中的相同构造。Iam 使用相同的函数来压缩文件“http://davidwalsh.name/create-zip-php http://davidwalsh.name/create-zip-php“并且我正在编写此代码,并且我收到了 zip 下载的提示,但当我提取文件时,我收到了警告消息
$zip_file = "my-archive.zip";
$file_path="../../../downloads/";
$files_to_zip = array($file_path."test_testing.txt");
$result = create_zip($files_to_zip,'my-archive.zip');
header('Content-Description: File Transfer');
header('Content-Transfer-Encoding: binary');
header('Cache-Control: must-revalidate, post-check=0, pre-check=0');
header("Content-type: application/zip");
header("Content-Disposition: attachment; filename=".$zip_file);
header("Pragma: no-cache");
header("Expires: 0");
readfile($zip_file);
注意错误消息是“此存档中的一个或多个文件使用“..”(父文件夹)作为其文件夹信息的一部分”
在 create_zip() 函数中,
改变
foreach($valid_files as $file) {
$zip->addFile($file,$file);
}
to
foreach($valid_files as $file) {
$zip->addFile($file,pathinfo($file,PATHINFO_BASENAME));
}
只要文件数组中没有名称重复但目录不同的文件,此方法就可以工作
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)