PHP压缩文件夹以及文件夹下的所有文件夹和文件

文章讲述了作者在将本地文件夹内容压缩到线上时遇到的问题,由于线上环境的存储路径与本地不同,导致使用`addFile`方法时无法找到文件。作者强调了理解`$filePath`(绝对路径)和`$relativePath`(相对路径)的区别,并提醒读者在处理真实路径时可能出现的隐藏路径和类不存在的情况。
摘要由CSDN通过智能技术生成

原本应该是很简单的一个事, 但是我被坑了, 因为本地的环境附件存储路径就是真实路径, 但是线上的不是的, 所以在寻找要压缩的文件夹的时候就找不到, 痛苦

不多说了, 直接上代码

一定要清楚 addFile($filePath, $relativePath) 这个方法的参数对应的都是什么

        $filePath 是绝对路径, $relativePath是相对路径

        比如我们要压缩 D:\data 这个文件夹下面的所有文件和文件夹, 那么, 在循环这个文件夹下面的文件夹时, $relativePath 就是相对于 D:\data 的路径

如果是1.pdf, $filePath = D:\data\1.pdf, $relativePath = 1.pdf

如果是1-1.pdf, $filePath = D:\data\文件夹1\1-1.pdf, $relativePath = 文件夹1\1-1.pdf

以此类推

所以, 在获取相对路径的时候一定要打印一下看看清楚, 

$filePath = $file->getRealPath()

这个获取的是真实的路径, 可能服务器上面会隐藏路径, 我就是在这里被坑住的

如果提示 ZipArchive 这个类不存在, 加个 \ 就行了 , 这样

$zip = new \ZipArchive();

希望能帮到你

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值