解决php ZipArchive生成压缩文件带有目录层级的问题

如果你使用php ZipArchive  addFile 方法把多个文件压缩在1个目录时会产生一个问题,我们只想要在当前目录把所有文件放在一起,结果他安装每个文件的所在目录在当前目录创建一遍,解决方式如下:

$allAttachment = explode(',', $attachment);
if (!$allAttachment) {
    throw new Exception('附件信息异常');
}

// 循环保存文件到Zip中
foreach ($allAttachment as $attachmentItem) {
    if ($attachmentItem) {
        $attachmentItem = ROOT_PATH . 'public' . DS . $attachmentItem;

        // 添加文件
        $zip->addFile($attachmentItem);

        // 对添加的文件重新命名,避免出现目录问题
        $zip->renameName($attachmentItem, basename($attachmentItem));
    }
}

// 关闭
$zip->close();

如果不能解决您的问题,可以尝试如下方式

// 添加文件
$zip->addFile($attachmentItem, pathinfo($attachmentItem, PATHINFO_BASENAME));
访客
邮箱
网址

通用的占位符缩略图

人工智能机器人,扫码免费帮你完成工作


  • 自动写文案
  • 自动写小说
  • 马上扫码让Ai帮你完成工作
通用的占位符缩略图

人工智能机器人,扫码免费帮你完成工作

  • 自动写论文
  • 自动写软件
  • 我不是人,但是我比人更聪明,我是强大的Ai
Top