Laravel:如何将Excel文件存储在给定路径中?

Kun*_*sir 6 html php excel export laravel

我有一个功能,可以将我的刀片视图转换为 Excel 格式并下载。现在我想将其保存在指定位置,即: public/uploads/release 这是我的控制器:

 public function export_release()
{
    return Excel::download(new ReleaseExportView(), 'release.xlsx');
}
Run Code Online (Sandbox Code Playgroud)

此功能下载 Excel 文件下载文件夹。我想将其保存在位置:public/uploads/release

这是我的路线:

Route::Get('outbounds/export_release' ,'outboundController@export_release')->name('outbounds.export_release');
Run Code Online (Sandbox Code Playgroud)

Rem*_*mul 7

您可以使用该store方法将文件存储在文件系统中。

来自文档

导出可以轻松存储在 Laravel 支持的任何文件系统上。

默认磁盘

public function storeExcel() 
{
    // Store on default disk
    Excel::store(new InvoicesExport(2018), 'invoices.xlsx');
}
Run Code Online (Sandbox Code Playgroud)

定制盘

public function storeExcel() 
{
    // Store on a different disk (e.g. s3)
    Excel::store(new InvoicesExport(2018), 'invoices.xlsx', 's3');
    
    // Store on a different disk with a defined writer type. 
    Excel::store(new InvoicesExport(2018), 'invoices.xlsx', 's3', Excel::XLSX);
}
Run Code Online (Sandbox Code Playgroud)

现在,理想情况下,您可以将文件存储在 中storage/app/public/uploads/release,并创建一个从public/storage/到 的符号链接,如此storage/app/public所述。

但如果您确实想将其存储在中,public/uploads/release您可以在 中创建新的自定义磁盘config/filesystems.php。就像是:

'real_public' => [
    'driver' => 'local',
    'root' => public_path(),
    'url' => env('APP_URL'),
    'visibility' => 'public',
],
Run Code Online (Sandbox Code Playgroud)

然后您可以使用自定义磁盘来存储文件:

public function export_release()
{
    Excel::store(new ReleaseExportView(), 'uploads/release/release.xlsx', 'real_public');
}
Run Code Online (Sandbox Code Playgroud)