ZipArchive::locateName(): Invalid or uninitialized Zip object報錯原因總結

由於功能需求需要讀取Excel文件,再修改其內容保存,就用到了PHPExcel類;

但是在讀取的過程中就出現了ZipArchive::locateName(): Invalid or uninitialized Zip object,這個報錯,耗時4個小時查詢了幾乎網上的所有的相關內容,基本上千篇一律就2種情況:

1.就是excel5根excel2007的區別:

 excel5讀取的是.xls後綴,適用於1993年的MicrosoftOffice5.0版本的excel文件,對於現在來說已經很老了,excel2007讀取的是xlsx後綴,現在基本使用的是excel2007了;

   適用於兩種後綴文件的代碼,如果是因爲這個原因報錯的話,問題是很好解決的。

if($name =='xlsx' ){
    $objReader = PHPExcel_IOFactory::createReader('Excel2007'); 
}else{
    $objReader = PHPExcel_IOFactory::createReader('Excel5'); 
}

$objPHPExcel = $objReader->load($filename, $encode = 'utf-8');

2.ZipArchive類問題:

具體可以參考:http://www.nidecun.cn/index.php/archives/6/

如果是用PHPExcel,可以在PHPExcel\Reader\Excel2007.php下找到代碼:

 

3.我碰到的就是第三種情況了,Excel文件有問題,我們公司內的office文件經過編輯後都會被卡巴斯基加密,於是我新建了一個文件,報錯就消失了,但是如何對加密文件進行編輯,仍然頭疼中。。。

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章