频道栏目
首页 > 程序开发 > Web开发 > php > 正文
PHP 的解压缩ZipArchive中的extractTo()方法 LINUX+nginx环境中解压zip时文件丢失的问题
2013-11-05 16:07:22           
收藏   我要投稿
    在项目中要用ZipArchive解压ZIP文件,起初测试环境在WINDOWS平台中,测试通过,换到 LINUX+nginx 的环境中时 就出问题了(ZIP包中有文件和文件夹一共3百多个文件,大部分是带汉字的文件名),问题的现象是:不带汉字的文件解压没有问题,另外有部分带汉字和数字字母的文件解压没有问题,然后其他纯文字的文件名就丢失了,也没有报错,最后把问题定位到了extractTo()方法,这个方法尼玛是个封装的方法,看不到实际的源代码。

      但是,发现 for($i = 0; $i < $zip->numFiles; $i++) 这里却可以找到所有的文件,个数是正常的,那么问题就出现解压后的 copy环节了。那么是不是可以借助这个循环自己解压,自己copy文件呢??

     于是 

    for($i = 0; $i < $zip->numFiles; $i++) {

       $filename = $zip->getNameIndex($i);

    if(!is_dir($filename)){

          copy("zip://".$path."#".$filename, $topath.$filename);

    }else{

         @mkdir($topath.'/'.$filename, 0777);

    }

   }     

  问题解决了哈。  找这个问题浪费了 我一天时间!! 希望对碰到同样 文件在解压的时候丢失的同学有帮助哈。 

点击复制链接 与好友分享!回本站首页
上一篇:简单实用方便的ajax评论完整代码
下一篇:CI框架连接数据库配置操作以及多数据库操作
相关文章
图文推荐
点击排行

关于我们 | 联系我们 | 广告服务 | 投资合作 | 版权申明 | 在线帮助 | 网站地图 | 作品发布 | Vip技术培训 | 举报中心

版权所有: 红黑联盟--致力于做实用的IT技术学习网站