2017-05-14 91 views
2

继文档的这一部分:自定义文件名,同时保持扩展

https://laravel.com/docs/5.3/filesystem#file-uploads

我想存储文件(图像),并指定一个自定义的文件名,但我不希望改变扩展名。

如果我做的:

$request->file('avatar')->storeAs('avatars', 'custom_file_name'); 

该文件将保存为custom_file_name(不带扩展名),而不是custom_file_name.png)。

如何在保留原始文件扩展名的同时指定自定义文件名?

回答

2

你可以上传文件的扩展名有:

$extension = $request->photo->extension(); 

,并手动将其应用到存储的文件名。

UploadedFile类还包含用于访问文件的完全限定路径及其扩展名的方法。 extension方法将尝试根据其内容猜测文件的扩展名。

https://laravel.com/docs/5.4/requests#files

0

下面的代码检查请求是否已通过用CUSTOM_NAME ID /名称的化身,然后将其存储的文件。{uploaded_files_extension}

if($request->hasFile('avatar')) { 
       $imgfile = Input::file('avatar'); 
       $custom_name = 'custom_name'.$imgfile->getClientOriginalExtension(); 
       $request->file('avatar')->storeAs('avatars', $custom_name); 
      } 
相关问题