我的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'
关闭,但不是我需要的。有什么想法吗?
答案 0 :(得分:0)
我从laravel docs,
那里拿走了这个您可以使用storeAs()
方法
$path = $request->file('avatar')->storeAs(
'avatars', $request->user()->id
);
使用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);