如何在php中使用mod_zip模块对ZIP文件进行打包-创新互联

如何在php中使用mod_zip模块对ZIP文件进行打包?相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。

创新互联建站是少有的成都网站设计、网站制作、营销型企业网站、成都小程序开发、手机APP,开发、制作、设计、友情链接、推广优化一站式服务网络公司,于2013年创立,坚持透明化,价格低,无套路经营理念。让网页惊喜每一位访客多年来深受用户好评

nginx 有一个第三方模块,mod_zip 。同样可以输出 zip 包。和 X-Accel-Redirect 有点类似,只需要 php 输出相应文件的路径等信息,然后给一个特殊的响应头即可。


nginx zip 模块使用的响应头是 X-Archive-Files: zip 。加上这个响应头,nginx zip 模块就会处理响应正文,完成打包输出。

比如:


复制代码 代码如下:


printf("%s %d %s %s\n", $crc32, $size, $url, $path );


逐条输出要打包的文件。

$crc32 是 16 进制的文件 crc32 值。也可以不提供,用 “-” 代替。不过这样就没法用 Range 分块下载,断点续传了。
$size 是文件大小的十进制整数。
$url 是要打包的源地址。如果要打包一个本地文件,可以先在 nginx 中做一个 internal path。
$path 是 zip 包中的路径。

不过这样没法创建空目录。一方面,zip 格式开始就没有定义空目录,后来的标准和软件都是通过加一个 / 结尾的 0 大小文件来实现的。这时,就需要先在 nginx 中做一个 internal 的 0 大小文件,比如位于 /_0 。然后输出


复制代码 代码如下:


printf("%s %d %s %s\n", '00000000', 0, '/_0', $path.'/');

看完上述内容,你们掌握如何在php中使用mod_zip模块对ZIP文件进行打包的方法了吗?如果还想学到更多技能或想了解更多相关内容,欢迎关注创新互联行业资讯频道,感谢各位的阅读!


分享标题:如何在php中使用mod_zip模块对ZIP文件进行打包-创新互联
分享地址:http://azwzsj.com/article/idjgi.html