在Laravel中自定义上载的.zip文件的名称

时间:2018-01-23 20:29:31

标签: php laravel laravel-5

我的Laravel应用程序接受用户提交的.zip文件,我暂时存储在本地存储中:

Storage::disk('local')->put('exports', $request->custom_report_url);

挑战在于,这会创建一个我认为是某种哈希的文件:

'app/storage/exports/U44SEhM1wycNgMU0bV6qieSRiGJwMPvkDpBDgkyo.zip'

这使得该zip文件在此过程的后期很难找到。

有没有办法可以为该zip文件定义自定义名称?理想情况下,我想做类似的事情:

Storage::disk('local')->put('exports/export_' . $export-id . '.zip', $request->custom_report_url);`

但是,当我运行该代码时,它会创建以下文件路径:

'app/storage/exports/export_1.zip/U44SEhM1wycNgMU0bV6qieSRiGJwMPvkDpBDgkyo.zip'

关闭,但不是我需要的。有什么想法吗?

3 个答案:

答案 0 :(得分:0)

我从laravel docs,

那里拿走了这个
  1. 您可以使用storeAs()方法

    $path = $request->file('avatar')->storeAs( 'avatars', $request->user()->id );

  2. 使用Storage门面

    $path = Storage::putFileAs(
        'avatars', $request->file('avatar'), $request->user()->id);
    

答案 1 :(得分:0)

Storage::disk('local')->put('exports', $request->custom_report_url);

我认为,执行此操作的好方法是使用变量获取路径。您可以依靠laravel哈希。

$path = Storage::disk('local')->put('exports', $request->custom_report_url);

然后将$ path保存在数据库中。您可以使用此路径来检索文件。

答案 2 :(得分:0)

您可以使用以下代码:

使用文件外观

use Illuminate\Http\File;

对代码进行以下更改:

$custom_file_name = time().'-'.$request->file('input_field_name')->getClientOriginalName();
$path = $request->file('input_field_name')->storeAs('directory_name',$custom_file_name);