2017-05-08 179 views
1

我正在致力於laravel 5.2中的cron作業,當時我嘗試從計劃調用控制器函數來創建Excel工作表獲取錯誤。但郵遞員運行良好。ZipArchive :: close():未能在AWS EC2 Linux中創建臨時文件

ZipArchive::close(): Failure to create temporary: No such file or directory' in /var/www/html/Expenses/vendor/phpoffice/phpexcel/Classes/PHPExcel/Writer/Excel2007.php:398

問題與zipArchive臨時文件的權限?

我將phpexcel表保存到目錄(777)時出現以上錯誤。

$excel_path = 'SubmittedSheets/'.$userId.'-'.uniqid().'.xlsx'; 
$objWriter->save($excel_path); 
+0

您配置爲PHP的臨時文件夾的文件夾是否真的存在?如果是這樣,您的腳本是否可以訪問它? (記住一個cron作業可能作爲一個不同的用戶運行,而不是web訪問) –

+0

https://laracasts.com/discuss/channels/servers/ziparchiveclose-failure-to-create-temporary-file-no-such-file - 或 - 目錄 – hassan

+0

@hassan - 我看到了這個解決方案,但不清楚。請解釋你是否知道。 – 151291

回答

1

需要AWS Ec2 Linux for PHPExcel中保存excel文件的絕對路徑。

$excel_path = '/var/www/html/MyProject/public/SubmittedSheets/'.$userId.'-'.uniqid().'.xlsx'; 
$objWriter->save($excel_path); 
+0

我有同樣的錯誤,但解決方案不工作:(甚至我用 - $ objWriter->保存('/ var/www/yebesis/public_html /文件/ caglar.orhan/test.xlsx'); – caglaror

+1

@caglaror - 這也是由於磁盤空間不足造成的,檢查你的AWS可用空間,點擊'df -h'和'du -sh',請讓我知道錯誤信息。 – 151291

+0

不,它有很大的空間:( – caglaror