PHPWord 操作word ZipArchive::locateName(): Invalid or uninitialized Zip object

PHPWord 操作 word文档报错ZipArchive::locateName(): Invalid or uninitialized Zip object总结

一、文件问题

我碰到的就是第一种情况了,docx文件有问题,office文件经过编辑后都会被加密了,于是我新建了一个文件,报错就消失了,但是如何对加密文件进行编辑,仍然无法解决……

二、MsDoc跟Word2007的区别

MsDoc读取的是.doc后缀,适用于2003年前的MicrosoftOffice版本的word文件,对于现在来说已经很老了,Word2007读取的是docx后缀,现在基本使用的是Word2007了。

适用于两种后缀文件的代码,如果是因为这个原因报错的话,问题是很好解决的。

if ('docx' == $file_ext) {
    $inputFileType = 'Word2007'; //Word2007及以上
} else {
    // $this->openOfficePreview($inputFileName);//调用openoffice处理吧
    $inputFileType = 'MsDoc'; //Word97-2003 但是会乱码 何解? TODO
}

附带下安装PHPWord安装教程(镜像比较坑,下半天……)

1.安装composer就不赘述了,自行百度

2.在composer.json文件中添加以下代码,版本可以自行更改,
composer show --all phpoffice/phpword可以查询所有phpword版本

{
    "require": {
       "phpoffice/phpword": "v0.17.0"
    }
}

添加后执行composer install,等待安装就好了

也可以直接执行要安装的版本,同理版本号可以自行修改

composer require  phpoffice/phpword v0.17.0

3.如果卡在界面完全不动,考虑修改镜像(修改当前项目的 composer.json 配置文件,若要全局配置在composer config后加 -g 即可)
打开命令行窗口(windows用户)或控制台(Linux、Mac 用户),进入你的项目的根目录(也就是 composer.json 文件所在目录),执行如下命令:

composer config repo.packagist composer https://packagist.phpcomposer.com

这是中国全量镜像,可以安装最好,不能安装就尝试下下面两个镜像

#阿里云的composer镜像源
composer config repo.packagist composer https://mirrors.aliyun.com/composer/
#腾讯云的composer镜像源
composer config repo.packagist composer https://mirrors.cloud.tencent.com/composer/

上面两个是我们中国这两大公司的源,不过也不一定有用。

这里其实还有可能出一点错误,就是apache或者nginx 需要开启ssl.mod.

希望对你有所帮助^^

若有不足,请留言告诉我,感谢

评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值