以前一直用的是.net,由于考虑到开源问题,所以最近开始学php了。

由于以后准备长期在linux下使用计算机,所以特地将环境搭成了fedora20+apache+php+mysql.

由于也不是大咖,所以全部环境采用了yum安装。一路顺利。

目前学习到php多文件下载这一章节,前面的路还算一帆风顺,但到了这一章节,太不顺利了。首先是考虑到ZipArchive是需要扩展的,但因为自己是yum安装,所以不知道到底是不是安装了这个扩展。倒腾了好久才发现,其实yum安装已经替我安装了这个扩展,但最后还是证明,其实yum安装已经替我安装了这个扩展,并且这个扩展在phpinfo中对应zip模块。

闲话不多说,讲讲我今天遇到的问题, 代码如下:while(true){

$archiveName = md5(uniqid().time()).".zip";

if(!file_exists("./".$archiveName))

break;

}

$zip = new ZipArchive();

//根据文件名,打开一个zip压缩包,如果包不存在,则创建一个 ZipArchive::OVERWRITE

//这里打开的模式在linux下不可使用ZipArchive::OVERWRITE来自动创建ZIP包

if(!$zip->open($archiveName,ZipArchive::CREATE)){

die("打开压缩包失败");

}

foreach($files as $v){

$zip->addFile($v);

}

//将文件放进zipArchive后要关闭zip 包,不然会下载到一个空包

$zip->close();

反复测试,但就是无法生成正确的zip包,报错信息:ZipArchive::AddFile(): invalid or uninitialed object in .......

起初以为是zip模块的问题,但后来发现,$zip对象是实例化成功的。那就不应该是模块问题。

后来又发现,每次$zip->open()后,我的服务器端都没有产生对应的zip包。现在已经是凌晨,头晕晕

一觉醒来后,神清气爽。于是乎动手改DEMO。最后发现,是因为在linux环境下,不可使用ZipArchive::OVERWRITE来自动创建ZIP包,小小问题,耽误好久。希望这个问题能够帮到遇到同样问题的朋友。

最后我要感谢一下在学习过程中一直给予帮助的张双老师。

linux php ya ziparchive,linux下zipArchive终于工作了相关推荐

  1. linux 实时 网口 速率_linux 下查看网卡工作速率-阿里云开发者社区

    [root@hadoop058 ~]# mii-tool eth0: negotiated 100baseTx-FD, link ok 100M linux 下查看网卡工作速率 Ethtool是用于查 ...

  2. 双用户windows linux系统,Windows与Linux合二为一?终于能在windows上运行Linux了!

    原标题:Windows与Linux合二为一?终于能在windows上运行Linux了! 目前在PC端操作系统市场份额中,微软旗下的windows系统占据超过50%的比例. 作为微软旗下发布的产品之一, ...

  3. linux安装ati工具,Linux下ATI驱动安装傻瓜安装方法

    Linux下ATI驱动安装傻瓜安装方法 发布时间:2006-01-04 12:58:15来源:红联作者:zz123 菜鸟我刚刚接触Debian不久(其实时间也不短了,但是没有深研究),在各位前辈的指导 ...

  4. linux gcc 安装目录,Linux下安装GCC

    为了在Ubuntu下安装那令人悲催的GCC,小弟可是绞尽脑汁,连干三天...当我搞清楚那些破软件m4,gmp mpfr,mpc等之间的依赖关系,依照强大的度娘提示下,安装了一遍又一边一边又一边···· ...

  5. linux分区_解决Linux下挂载的NTFS分区(Windows分区)只读问题。

    今天又依靠自(谷)己(歌)解决了一个不大不小的问题--Linux下挂载的NTFS分区下的文件(夹)只能读取不能写入的问题. 其实类似问题大约两年多之前就出现过,当时解决了.昨天又出现了.和两年多前出现 ...

  6. linux怎么进win7系统安装程序,Linux操作系统在win7操作系统下怎么安装?

    Linux操作系统在win7操作系统下怎么安装? 更新时间:2019-03-08 17:45 最满意答案 可以装虚拟的了,这样的即安全又实用的,就是先下载一个软件VM和一个Linux的镜像文件就可以了 ...

  7. Linux内存技术分析(下)

    Linux内存技术分析(下) 五. 内存使用场景 out of memory 的时代过去了吗?no,内存再充足也不可任性使用. 1.内存的使用场景 · page管理 · slab(kmalloc.内存 ...

  8. linux怎么获取当前路径,linux 下获取当前工作路径的实例

    获取工作路径这里介绍两种方法: 1.使用getcwd()函数. 头文件:#include 定义函数:char * getcwd(char * buf, size_t size); 函数说明:getcw ...

  9. linux 音频文件长度,Linux下压缩音频文件

    安装工具 sudo apt-get install lame 具体用法可以查看帮助  lame --help 通过更改音频文件的帧数 可以让文件变小  但是音质也会随之下降 现在比较多的mp3文件是1 ...

  10. Linux集群架构(下)——DR模式、keepalived+LVS

    2019独角兽企业重金招聘Python工程师标准>>> Linux集群架构(下) 八.DR模式搭建 8.1 准备工作 试验需求三台机器: 分发器,也叫调度器(简写为dir) : 19 ...

最新文章

  1. 兰大博士神论文: 我和同门亲师妹是如何走到一起的?
  2. 织梦cms系统如何code 财付通接口
  3. 剪切粘贴时总是上次的内容_【Procreate 迷你课堂】#4 三指快速拷贝及粘贴
  4. 三十三、自从我会了Python中的PIL,发现了其实超级简单
  5. 1.信号处理之:kill(),alarm(),pause()函数
  6. MySQL 高可用架构在业务层面细化分析研究
  7. HTTP 请求消息头部实例:
  8. 【JZOJ5911】Travel
  9. input type=file与cursor:pointer的兼容性问题
  10. VRTK实现瞬移, 多场景复制
  11. mysql全称量词_数据库基础lt;三)标准语言SQL-一团网
  12. HTTP请求415错误 – 不支持的媒体类型(Unsupported media type)
  13. 【Educoder作业】※网页抓取及信息提取
  14. SCI Translate 11安装教程
  15. 期刊分类(CN,ISSN,A,B,C类)
  16. 关于点焊,你知道多少
  17. 【点云分割】边界分割对点云分割的监督学习(CBL)
  18. 华硕主板+ubuntu18.04+3090驱动安装踩坑记录
  19. MySQL中,对结果或条件进行字符串拼接
  20. Java 银联支付官网demo测试及项目整合代码

热门文章

  1. python做bi系统_Python开源 BI 工具 Superset 的搭建与初级使用
  2. 音视频学习(十三、音频数据处理)
  3. NRF24L01 大数据分包组包传输
  4. 树莓派自启动python程序,远程树莓派桌面,重装树莓派系统,串口驱动,永不休眠,树莓派旋转屏幕方向,树莓派定时重启,修改矫正树莓派时间,raspbian Linux 系统命令常用
  5. ios辅助功能_iOS辅助功能标签
  6. 好像模拟了一个引力场
  7. 使用 Steam++ 快速访问 Github
  8. CSS @media 查询
  9. 中华云盒M1刷Linux教程,再谈中华云盒M1刷机详细教程,包教包会终结版
  10. java分布式部署的优点_什么是分布式系统!以及分布式系统架构的优缺点!