You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

PHP创建并下载Zip文件异常:下载内容为解压后的文件夹

解决Mac系统下载Zip却自动解压为文件夹的问题

你遇到的这个状况根本不是代码的锅!你的PHP代码已经正确在服务器生成了Zip文件,问题出在Mac系统的默认行为上——Mac会自动识别并解压那些采用「存储」模式(无压缩)打包的Zip文件,导致你看起来像是直接下载了文件夹,而非预期的Zip包。

下面给你两种解决思路:

一、调整Mac系统设置(用户端操作)

  • 打开「访达」,点击顶部菜单栏的「访达」→「设置」
  • 切换到「通用」标签页,取消勾选**“打开安全的下载项目”**选项(不同MacOS版本的文字可能略有差异,比如有些版本叫“自动打开安全的下载文件”)
  • 如果你只是临时需要处理单个文件,也可以按住Option键点击下载的文件,选择「打开方式」→「归档实用工具」,或者右键选择「显示包内容」来查看原始的Zip结构。

二、修改代码,生成带压缩的Zip文件(服务端优化)

你的代码里用的FlxZipArchive类默认可能采用了ZipArchive::STORED(无压缩存储)的方式打包文件,这正是触发Mac自动解压的原因。你可以修改addDir的调用,指定压缩方式为ZipArchive::DEFLATED,生成带压缩的Zip包,Mac就不会自动解压了:

把原来的代码行:

$zip->addDir($path,basename($path));

替换为:

$zip->addDir($path,basename($path), ZipArchive::DEFLATED);

这样生成的Zip文件是经过压缩的,既不会触发Mac的自动解压,还能减小文件体积,一举两得。

内容的提问来源于stack exchange,提问作者user8313545

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.15 07:07:47