Php 如何创建和下载没有路径目录的zip文件
我的代码创建了一个ZIP文件,并将其下载到这个ZIP文件夹中,其中包含一些图像 它做得很好,但问题是,在我下载并解压缩此文件夹后,所有路径文件夹也将成为我的代码:Php 如何创建和下载没有路径目录的zip文件,php,Php,我的代码创建了一个ZIP文件,并将其下载到这个ZIP文件夹中,其中包含一些图像 它做得很好,但问题是,在我下载并解压缩此文件夹后,所有路径文件夹也将成为我的代码: $id=$row['id']; $doc_name=$row['doc_name']; $file_name=分解(“,”,$doc_name); $file\u path=$\u ROOT\u REQUIRE.“上传/document/”; $archive\u file\u name=“demo.zip”; $zip=新ZipAr
$id=$row['id'];
$doc_name=$row['doc_name'];
$file_name=分解(“,”,$doc_name);
$file\u path=$\u ROOT\u REQUIRE.“上传/document/”;
$archive\u file\u name=“demo.zip”;
$zip=新ZipArchive($archive\u file\u name);
如果($zip->open($archive\u file\u name,ZIPARCHIVE::CREATE)!==TRUE){
echo“无法打开\n”;
退出(“无法打开”);
}
foreach($file\u名称为$files){
如果($files!=''){
$zip->addFile($files),basename($files));
}
}
$zip->close();
标题(“内容类型:应用程序/zip”);
标题('Content-Disposition:attachment;filename=“”.basename($archive_file_name)。“”);
标题(“内容传输编码:二进制”);
标题('Content-Length:'.filesize($archive\u file\u name));
标头('Cache-Control:private');
ob_clean();
冲洗();
readfile(basename($archive_file_name));
出口
不清楚为什么会发生这种情况,请看这一行:
$zip->addFile("$files", basename($files));
为什么在$files
周围有“
引号?我建议将其改为:
$zip->addFile($files, basename($files));
你的代码看起来很好。
只需更换您的Foreach循环
foreach ($files as $file)
{
$file = str_replace('\\', '/', $file);
if(filetype($file) == 'file') {
$zip->addFile( $file, pathinfo( $file, PATHINFO_BASENAME ) );
}
}
应该是工作
谢谢这些是我所做的更改,现在效果很好。谢谢大家
$overwrite=true;
if($zip->open($archive\u file\u name,$overwrite?ZIPARCHIVE::overwrite:ZIPARCHIVE::CREATE)!==true)
foreach ($file_names as $file) {
$files = $file_path.$file;
$files = str_replace('\\', '/', $files);
if(filetype($files) == 'file') {
$zip->addFile( $files, pathinfo( $files, PATHINFO_BASENAME ) );
}
}
谢谢,亲爱的,完成了。谢谢,亲爱的,完成了