【发布时间】:2018-10-11 17:50:46
【问题描述】:
我有一个 Laravel 应用程序部署到 Google App Engine。根据 GAE 的架构规则,您不能将文件保存到本地路径。我正在使用PHP Spreadsheet 生成 Xlsx 文件并为用户下载它们。所以这在本地有效,但在部署的应用程序中无效..
$writer = new \PhpOffice\PhpSpreadsheet\Writer\Xlsx($spreadsheet);
$writer->save('storage/SomeExcelFile.xlsx');
然后我可以用..下载文件。
return Storage::disk('public')->download('SomeExcelFile.xlsx');
但是无法在应用程序的生产版本上本地保存文件,我将如何存储我的文件? 我将我的应用程序连接到可以上传文件的存储桶。但是我需要文件路径来执行此操作,并且由于该文件是在应用程序中以脚本方式创建的,并且在部署之前从未存储过,因此我找不到存储它的方法。
据我所知,您无法将 xlsx 文件直接写入磁盘。例如,我可以将带有文本sample data 的文本文件写入我的谷歌云存储桶..
Storage::disk('gcs')->put('String.txt', 'sample data');
但是找不到使用我的 excel 文件的方法。另外应用部署在Flex环境中,所以不能使用文件url结构gs://
【问题讨论】:
-
您没有保存任何文件,例如会话或日志?您可以在不创建新文件的情况下打开/写入文件吗?也许您可以使用现有文件作为解决方法。
标签: php laravel google-app-engine google-cloud-storage phpspreadsheet