Laravel上载文件时仅存储文件名

Laravel上载文件时仅存储文件名,laravel,laravel-6,Laravel,Laravel 6,我有以下代码来上传和存储文件 $user->update([ 'display_profile' => request()->display_profile->storeAs('avatars', $name,'public') ]); 这将文件存储在显示配置文件中,作为化身/filename.jpg 因为我有多个版本的文件用于在视图周围显示,所以我使用了如下前缀 thumb_filename.jpg small_filename.jpg 大型文件名.j

我有以下代码来上传和存储文件

$user->update([
        'display_profile' => request()->display_profile->storeAs('avatars', $name,'public')
]);
这将文件存储在
显示配置文件中,作为
化身/filename.jpg

因为我有多个版本的文件用于在视图周围显示,所以我使用了如下前缀

thumb_filename.jpg

small_filename.jpg

大型文件名.jpg

我需要做大量的字符串替换来插入前缀,以显示图像的正确版本。我是否可以在数据库中只保存文件名而不保存完整路径


如果不是,在视图中显示我的文件的最佳方式是什么?

从请求中检索文件时,该文件将转换为对象。您可以很容易地检索原始名称,如下所示

$file=$request->display\u profile;
$user->update([
'display_profile'=>$file->getClientOriginalName()
]);

对于第二个问题,我建议您创建一个与
Image
类的关系,您可以在其中存储所需的所有图像转换。但这可能有点棘手,可能需要时间进行编码。幸运的是,有很多库可以为您处理这个问题。我最喜欢的是

从请求中检索文件时,该文件将转换为对象。您可以很容易地检索原始名称,如下所示

$file=$request->display\u profile;
$user->update([
'display_profile'=>$file->getClientOriginalName()
]);

对于第二个问题,我建议您创建一个与
Image
类的关系,您可以在其中存储所需的所有图像转换。但这可能有点棘手,可能需要时间进行编码。幸运的是,有很多库可以为您处理这个问题。我最喜欢的是

我主要使用这种方法:

$file=$request->file('display_profile');
$name=$file->getClientOriginalName()$文件->扩展名();
$file->storeAs('public/avatars',$name);
$user->update([
“显示配置文件”=>$name
]);

我主要使用这种方法:

$file=$request->file('display_profile');
$name=$file->getClientOriginalName()$文件->扩展名();
$file->storeAs('public/avatars',$name);
$user->update([
“显示配置文件”=>$name
]);