【发布时间】:2020-10-28 06:01:54
【问题描述】:
我正在使用Laravel excel 导入标题和一些记录。
使用this approach,我应该能够获取标题:
$headings = (new HeadingRowImport)->toArray($myFile);
如果$myFile 是 CSV,没关系;但如果我尝试使用 XLS 或 XLSX(使用有效的 Mimetypes:application/vnd.ms-excel 和 application/vnd.openxmlformats-officedocument.spreadsheetml.sheet,我会遇到这样的问题:
ZipArchive::getFromName():
Invalid or uninitialized Zip object {"exception":"[object] (ErrorException(code: 0):
ZipArchive::getFromName(): Invalid or uninitialized Zip object at
/var/www/app/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Reader/Xlsx.php:308)
[stacktrace]
#0 [internal function]: Illuminate\\Foundation\\Bootstrap\\HandleExceptions->handleError(2, 'ZipArchive::get...', '/var/www/app/ve...', 308, Array)
#1 /var/www/app/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Reader/Xlsx.php(308): ZipArchive->getFromName('_rels/.rels', 0, 1)
#2 /var/www/app/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Reader/Xlsx.php(2019): PhpOffice\\PhpSpreadsheet\\Reader\\Xlsx->getFromZipArchive(Object(ZipArchive), '_rels/.rels')
#3 /var/www/app/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Reader/Xlsx.php(343): PhpOffice\\PhpSpreadsheet\\Reader\\Xlsx->getWorkbookBaseName(Object(ZipArchive))
#4 /var/www/app/vendor/maatwebsite/excel/src/Reader.php(229): PhpOffice\\PhpSpreadsheet\\Reader\\Xlsx->load('/tmp/laravel-ex...')
#5 /var/www/app/vendor/maatwebsite/excel/src/Reader.php(215): Maatwebsite\\Excel\\Reader->readSpreadsheet()
我试图找到相关的错误,但我只找到了 PhpExcel 或 PhpSpreadsheet,例如:
- Read Xlsx file in PhpSpreadsheet
- Why am I getting an "invalid or unitialized Zip object" error when trying to read excel file via PHP?
- PHPExcel Warning: ZipArchive::getFromName(): Invalid or unitialized Zip object in
- report bug on PhpSpreadsheet repo > read xlsx using filesystem gaufrette
我无法从他们那里找到有用的解决方法。有没有人遇到过这个问题,你是怎么解决的?
我的包版本:
- “php”:“^7.1.3”,
- "laravel/framework": "5.8.*",
- "maatwebsite/excel": "^3.1",
注意我的文件有read权限,因为它是644,我可以用fopen($myFile, 'r')打开文件
【问题讨论】:
标签: laravel-5 import php-7.1 maatwebsite-excel