在Laravel 5文件夹结构中保存文件的位置?

2022-08-31 00:19:17

我有我的Laravel项目,它将在进行一些计算后保存文件(txt或csv)。

我正在研究保存这些文件的最佳实践。也许是/resources/csv/...?

第二个问题 如何从类中引用此路径?在 .env 文件中设置 abs 路径?是否有将路径返回到资源的 laravel 方法?


答案 1

/resources不是最好的地方,因为这个文件夹用于源文件,通常存储在源代码存储库(例如git)中。

应用程序生成的文件通常最终位于 /storage 文件夹中的某个位置 - 只需在那里创建一个 /storage/csv 文件夹即可。

切勿直接从类中引用这些文件。Laravel的文件系统是你需要的 - 你可以在这里阅读更多关于它们的信息:http://laravel.com/docs/master/filesystem。它们使对文件的操作(如读取,写入,预置,追加,删除,移动,获取所有文件等等)变得更加简单。

从在配置/文件系统中定义文件系统开始.php

'disks' => [
  'csv' => [
    'driver' => 'local',
    'root'   => storage_path().'/csv',
  ],
],

现在,您可以通过存储外观从代码中的任何位置读取/写入csv文件,如下所示:

Storage::disk('csv')->put('file.csv', $content);
$content = Storage::disk('csv')->get('file.csv');

答案 2

您可以将文件保存在存储文件夹中。

例如:

您可以在存储文件夹中创建一个名为 csv 的文件夹,并按如下方式获取路径:

storage_path().'/csv';

您可以在

Laravel 4.2 : app>storage
Laravel 5+ : 在根目录中


推荐