【发布时间】:2019-09-04 01:20:26
【问题描述】:
我在生产服务器中保存生成的excel文件确实有问题,我确实在/public/reports目录中设置了存储路径,如下所示:
$filename = "report-".date('YmdHis').".xlsx";
$storage_path = public_path('reports');
但是,文件不会保存在reports 文件夹中,而是在public 文件夹中,我已经尝试过
$storage_path = public_path().'\reports\\';
但这将保存在公用文件夹之外。
我是 laravel 的新手,如果有人能指出解决方法,我将不胜感激。
编辑
这是整个区块:
public function handle()
{
$spreadsheet = new Spreadsheet();
$sheet = $spreadsheet->getActiveSheet();
$sheet->getStyle('C')->getAlignment()->setHorizontal('left');
$sheet->getColumnDimension('A')->setWidth(8);
$sheet->getColumnDimension('B')->setWidth(30);
$sheet->setCellValue('A1', 'title');
$sheet->setCellValue('B1', 'brief');
$reports = Report::get();
if(count($reports) > 0) {
$rowCount = 2;
foreach($reports as $report) {
$sheet->setCellValue('A' . $rowCount, $report->title);
$sheet->setCellValue('B' . $rowCount, $report->brief);
$rowCount++;
}
}
$spreadsheet->getActiveSheet()->setTitle('Report Title');
$spreadsheet->setActiveSheetIndex(0);
$export_filename = "report-".date('YmdHis').".xlsx";
\Illuminate\Support\Facades\Storage::disk('reports')->put($export_filename, $content);
$writer = new Xlsx($spreadsheet);
$writer->save($storage_path.$export_filename);
Mail::to(env('RPT_RECEIVER'))->send(new ReportsMail($storage_path.$export_filename, 'Report Name', date('F')));
exit;
}
【问题讨论】:
-
你能提供完整的代码吗?生成的excel文件具体是怎么保存的?
-
请在下方查看我的回答