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.
希望对你有所帮助^^
来源:CSDN
作者:蜡笔小新在线蹦迪
链接:https://blog.csdn.net/weixin_39527281/article/details/104196046