Исключение PHPExcel: «Не удалось закрыть zip-файл ...» - PullRequest
7 голосов
/ 15 августа 2011

Я использую XAMPP Mac для локальной разработки, но я использовал этот код на работе (с использованием Windows и другой идентичной среды разработки), и он работал нормально:

$objPHPExcel = new PHPExcel();
$sheet       = $objPHPExcel->createSheet();
$sheet->fromArray($a);
...
$objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel2007');
//$objWriter->save('P:/Projects/Mess3/Sadness.xlsx');
$objWriter->save('/Users/tjb1982/Desktop/sadness.xlsx');

Закомментированный текст работает с моей системой Windows на работе. Я попытался вывести файл в 'php: // output' и получил искаженный беспорядок (это то, что следует ожидать?).

Кажется, я не могу найти никого, кто испытывает эту проблему, кроме тех, у кого были проблемы с разрешениями или у которых был открыт файл, когда они пытались его сохранить. Пожалуйста, помогите!

Ответы [ 5 ]

22 голосов
/ 03 апреля 2013

Я получаю ту же ошибку "Не удается закрыть zip-файл .." и понял, что у него нет разрешений на запись в этот каталог.Проверьте свои права на запись.(IIS8 + php + mysql + oracle)

Как только я разрешил запись, проблема с правами на запись была немедленно решена.

11 голосов
/ 28 мая 2013

Обычно это означает одну из 3 вещей:

The directory where you're trying to save the file doesn't exist
The directory/file has permissions that preclude you from writing to it
The file is already open in some other application, or has a lock on it 
1 голос
/ 12 мая 2016

У меня была та же проблема, на самом деле вы должны изменить основные права на чтение и запись, указанные в вашем каталоге PHPWord:

chmod -R 777 PHPWord/
1 голос
/ 18 августа 2015

Я обнаружил, что эта проблема возникает, когда вы выполняете код один раз, а затем открываете выведенный файл Excel в Office Excel.Попробуйте закрыть файл в Excel, а затем попробуйте!Надеюсь, это поможет!

1 голос
/ 16 мая 2015

У меня была такая же проблема, только что добавил путь в методе сохранения, и он работал

$ objWriter-> save (dirname ( FILE ). "Dir1". "/". $ файл "XLSX.");.

...