繁体   English   中英

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

[英]Customizing the name of an uploaded .zip file in Laravel

我的 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'

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

我从 Laravel文档中获取了这个

  1. 您可以使用storeAs()方法

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

  2. 使用Storage门面

    $path = Storage::putFileAs( 'avatars', $request->file('avatar'), $request->user()->id);
Storage::disk('local')->put('exports', $request->custom_report_url);

我认为这样做的好过程是获取带有变量的路径。 你可以依靠 Laravel 哈希。

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

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

您可以使用以下代码:

使用文件外观

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);

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM