PHP 的解压缩ZipArchive中的extractTo()方法 LINUX+nginx环境中解压zip时文件丢失的问题

PHP 的解压缩ZipArchive中的extractTo()方法 LINUX+nginx环境中解压zip时文件丢失的问题

大家好,又见面了,我是全栈君,今天给大家准备了Idea注册码。

全栈程序员社区此处内容已经被作者隐藏,请输入验证码查看内容
验证码:
请关注本站微信公众号,回复“验证码”,获取验证码。在微信里搜索“全栈程序员社区”或者“www_javaforall_cn”或者微信扫描右侧二维码都可以关注本站微信公众号。

      在项目中要用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);
    }
   }     

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

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/117958.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • nginx最全教程_nginx使用教程

    nginx最全教程_nginx使用教程location[=|~|~*|^~]patt{}中括号可以不写任何参数,此时称为一般匹配也可以写参数因此,大类型可以分为3种location=patt{}[精准匹配]locationpatt{}[一般匹配]location~patt{}[正则匹配]——————————————–如何发挥作用?:首先看有没有精准匹配…

    2025年5月23日
    3
  • Mysql身份认证漏洞及利用(CVE-2012-2122) 补充测试用例

    Mysql身份认证漏洞及利用(CVE-2012-2122) 补充测试用例

    2021年8月18日
    62
  • 后台管理系统 – 权限设计

    后台管理系统 – 权限设计一、前言对于前端项目特别是中后台管理系统项目,权限设计是最复杂的点之一。一般来说权限设计需要后端来把关,毕竟相对来说前端是无法保证安全的,前端的代码和数据请求都可以伪造。而前端的权限设计更多是为了用户体验的考虑。前端保证体验,后端保证安全。由于前后端的开发差异和侧重点不同,在权限设计上也不一样。后端更多的是根据功能对象划分不同的权限模块,针对接口相应进行权限判断;而前端更多是针对页面路由进行模块划分,针对页面可访问进行判断。接下来将以后台管理系统为例,分享个人对前端权限设计的见解。(具体内容尽量做

    2022年7月16日
    14
  • Java生成随机数组_java生成唯一数字

    Java生成随机数组_java生成唯一数字java生成uuid介绍:UUID(通用唯一标识符)表示一个128位长的唯一值。它也被普遍称为GUID(全球唯一标识符)。UUID的标准表示形式由十六进制数字组成:533a4559-e55c-18b3-8456-555563322002并具有36个字符,其中包括四个连字符’-‘。Java中的java.util.UUID类表示一个不变的UUID。我们可以使用UUID类来生成…

    2022年9月22日
    2
  • 网络爬虫原理解析「建议收藏」

    1、网络爬虫原理网络爬虫指按照一定的规则(模拟人工登录网页的方式),自动抓取网络上的程序。简单的说,就是讲你上网所看到页面上的内容获取下来,并进行存储。网络爬虫的爬行策略分为深度优先和广度优先。如下图是深度优先的一种遍历方式是A到B到D到E到C到F(ABDECF)而宽度优先的遍历方式ABCDEF。2、写网络爬虫的原因(1)互联网中的数据量大,我们不能人工的去收集数据,这样会很浪费时间与金钱…

    2022年4月10日
    63
  • kettle工具使用一二三[通俗易懂]

    kettle工具使用一二三[通俗易懂]1:关于ID生成器。如果一个转化流程里的两个分支分别使用了GenerateID组件,请注意“计数器名称”,这个很重要。1)如果改名字不同,则最总汇总结果中的id是会分别生成的,也就是说会出现重复的id。2)如果名字相同,最终结果中id是不会重复的。2:关于序列生成器首先抱歉,上面所说的“GenerateID“组件,其实指的就是序列生成器。kettle5.3中包含两个序列生成器组件,一个…

    2022年10月12日
    2

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号