自定义文件名,同时保留扩展名
Custom file name while keeping extension
关注这部分文档:
https://laravel.com/docs/5.3/filesystem#file-uploads
我正在尝试存储文件(图像)并指定自定义文件名,但我不想更改扩展名。
如果我这样做:
$request->file('avatar')->storeAs('avatars', 'custom_file_name');
文件将保存为 custom_file_name
(没有扩展名),而不是 custom_file_name.png
)。
如何在保留原始文件扩展名的同时指定自定义文件名?
您可以通过以下方式获取上传文件的扩展名:
$extension = $request->photo->extension();
并手动将其应用于存储的文件名。
The UploadedFile
class also contains methods for accessing the file's fully-qualified path and its extension. The extension
method will attempt to guess the file's extension based on its contents.
下面的代码检查请求是否有 id/name 头像的文件,然后用 custom_name 存储它。{uploaded_files_extension}
if($request->hasFile('avatar')) {
$imgfile = Input::file('avatar');
$custom_name = 'custom_name'.$imgfile->getClientOriginalExtension();
$request->file('avatar')->storeAs('avatars', $custom_name);
}
只是为了支持@alexey-mezenin的回答,
您可能在添加扩展程序时遇到问题
//get extension
$extension = $request->file('featured_img')->extension();
$request->file('featured_img')->storeAs('/public/album',$post->title.'.'.$extension);
有了它,您可以将完整的代码存储在您的 /storage/public/album
关注这部分文档:
https://laravel.com/docs/5.3/filesystem#file-uploads
我正在尝试存储文件(图像)并指定自定义文件名,但我不想更改扩展名。
如果我这样做:
$request->file('avatar')->storeAs('avatars', 'custom_file_name');
文件将保存为 custom_file_name
(没有扩展名),而不是 custom_file_name.png
)。
如何在保留原始文件扩展名的同时指定自定义文件名?
您可以通过以下方式获取上传文件的扩展名:
$extension = $request->photo->extension();
并手动将其应用于存储的文件名。
The
UploadedFile
class also contains methods for accessing the file's fully-qualified path and its extension. Theextension
method will attempt to guess the file's extension based on its contents.
下面的代码检查请求是否有 id/name 头像的文件,然后用 custom_name 存储它。{uploaded_files_extension}
if($request->hasFile('avatar')) {
$imgfile = Input::file('avatar');
$custom_name = 'custom_name'.$imgfile->getClientOriginalExtension();
$request->file('avatar')->storeAs('avatars', $custom_name);
}
只是为了支持@alexey-mezenin的回答, 您可能在添加扩展程序时遇到问题
//get extension
$extension = $request->file('featured_img')->extension();
$request->file('featured_img')->storeAs('/public/album',$post->title.'.'.$extension);
有了它,您可以将完整的代码存储在您的 /storage/public/album