php调用nginx的mod_zip模块打包zip文件_.docx

上传人:啊飒飒 文档编号:11622206 上传时间:2021-08-26 格式:DOCX 页数:3 大小:12.14KB
返回 下载 相关 举报
php调用nginx的mod_zip模块打包zip文件_.docx_第1页
第1页 / 共3页
php调用nginx的mod_zip模块打包zip文件_.docx_第2页
第2页 / 共3页
php调用nginx的mod_zip模块打包zip文件_.docx_第3页
第3页 / 共3页
亲,该文档总共3页,全部预览完了,如果喜欢就下载吧!
资源描述

《php调用nginx的mod_zip模块打包zip文件_.docx》由会员分享,可在线阅读,更多相关《php调用nginx的mod_zip模块打包zip文件_.docx(3页珍藏版)》请在三一文库上搜索。

1、php调用nginx的mod_zip模块打包zip文件_ php 本身有 zip 模块,可以生产 zip 文件。但是这个 zip 模块只能用法本地文件来打包。假如需要打包输出的文件来自网络,就得先保存临时文件。在文件数量多或者文件大的时候就很杯具。另外,由 php 来输出大的打包文件会占用 php 进程大量时间,影响并发力量。 nginx 有一个第三方模块,mod_zip 。同样可以输出 zip 包。和 x-accel-redirect 有点类似,只需要 php 输出相应文件的路径等信息,然后给一个特别的响应头即可。 nginx zip 模块用法的响应头是 x-archive-files: z

2、ip 。加上这个响应头,nginx zip 模块就会处理响应正文,完成打包输出。 比如: 代码如下: printf(%s %d %s %sn, $crc32, $size, $url, $path ); 逐条输出要打包的文件。 $crc32 是 16 进制的文件 crc32 值。也可以不供应,用 “-” 代替。不过这样就没法用 range 分块下载,断点续传了。 $size 是文件大小的十进制整数。 $url 是要打包的源地址。假如要打包一个本地文件,可以先在 nginx 中做一个 internal path。 $path 是 zip 包中的路径。 不过这样没法创建空名目。一方面,zip 格式

3、开头就没有定义空名目,后来的标准和软件都是通过加一个 / 结尾的 0 大小文件来实现的。这时,就需要先在 nginx 中做一个 internal 的 0 大小文件,比如位于 /_0 。然后输出 代码如下: printf(%s %d %s %sn, 00000000, 0, /_0, $path./); 假如要支持中文路径,可以用法 x-archive-charset: utf8 这样的响应头,内容为你输出的编码。nginx zip 模块会按标准转换成 utf8 的标准格式。不过各个软件对这个 zip 的标准支持不一,比如 windows 的 zip 名目就不支持,只能以 gbk 编码挺直输出。其他软件对编码支持效果也各不相同。测试过的 winrar,7zip,windows zip 名目中,winrar 倒是都可以很好支持。7zip 可能会把部分中文空名目变成 0 大小文件。所以,这点还需要自己斟酌处理。 更多信息请查看IT技术专栏 .

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 科普知识


经营许可证编号:宁ICP备18001539号-1