我有以下代码来上传和存储文件。
$user->update([
'display_profile' => request()->display_profile->storeAs('avatars', $name,'public')
]);
这会将文件存储为avatars/filename.jpg
display_profile
。
由于我有多个版本的文件用于在视图周围显示,因此我正在使用前缀,例如以下内容
thumb_filename.jpg
small_filename.jpg
large_filename.jpg
我需要做很多字符串替换来插入前缀以显示图像的正确版本。无论如何,我可以只将文件名保存在完整路径的数据库内吗?
如果不是,在视图中显示文件的最佳方式是什么?
我主要使用这种方法:
$file = $request->file('display_profile');
$name = $file->getClientOriginalName() . '.' . $file->extension();
$file->storeAs('public/avatars', $name);
$user->update([
'display_profile' => $name
]);
当您从请求中检索文件时,该文件将被转换为UploadedFile
对象。您可以轻松检索原始名称,如下所示
$file = $request->display_profile;
$user->update([
'display_profile' => $file->getClientOriginalName()
]);
对于您的第二个问题,我建议您与Image
类建立关系,您可以在其中存储所需的所有图像转换。但这可能有点棘手,可能需要时间来编码。幸运的是,有大量的库可以为您处理这个问题。我最喜欢的是拉拉维尔媒体库