我正在使用laravel 5.5并上传图像。 我的代码以错误的方式生成名称。
{{1}}
图像的输出名称类似于: heart.png.1544074437
名称应为: heart1544074437.png
答案 0 :(得分:1)
使用pathinfo函数
尝试此操作提取文件名..
$fileName = pathinfo($image_icon->getClientOriginalName(), PATHINFO_FILENAME);
提取扩展
$extension = pathinfo($image_icon->getClientOriginalName(), PATHINFO_EXTENSION);
创建新文件名。
$fullFileName = $fileName."-".time().$image_icon->getClientOriginalExtension();
有关更多信息,请参见此question
答案 1 :(得分:0)
pathinfo —返回有关文件路径的信息
路径 要解析的路径。
options如果存在,则指定要返回的特定元素;一 PATHINFO_DIRNAME,PATHINFO_BASENAME,PATHINFO_EXTENSION或 PATHINFO_FILENAME。
如果未指定选项,则返回所有可用元素。
$image_icon = $request->file('image_icon')->getClientOriginalName();
$filename = pathinfo($image_icon, PATHINFO_FILENAME);
$extension = pathinfo($image_icon, PATHINFO_EXTENSION);
$data['image'] = $filename.time().'.'.$extension;
答案 2 :(得分:0)
您可以执行以下操作:
$image = explode(".", $image_icon);
$image_name = $image[0];
$image_extension = array_slice($image , -1, 1);
$data['image'] = $image_name.time().'.'.$image_extension[0];
我希望这将对您的问题有帮助且容易解决。 谢谢
答案 3 :(得分:0)
尝试
$imgName = md5(str_random(30).time().'_'.$request->file('image_icon')).'.'.$request->file('image_icon')->getClientOriginalExtension();
答案 4 :(得分:0)
上面的代码需要做一些小的改进,如下所示:
$image_icon = $request->file('image_icon');
$fileName = pathinfo($image_icon->getClientOriginalName(), PATHINFO_FILENAME);
$extension = pathinfo($image_icon->getClientOriginalName(), PATHINFO_EXTENSION);
$data['image'] = $image_icon->getClientOriginalName().time().'.'.$extension;
我尚未测试此代码段,但应该可以。
答案 5 :(得分:0)
您还可以使用laravel开箱即用的解决方案来上传:
$request->photo->store('images');
有关更多信息,请点击此处:https://laravel.com/docs/5.5/requests#files
答案 6 :(得分:0)
下面的代码对我来说很好。
// extract file name ..
$fileName = pathinfo($fileupload_dt->getClientOriginalName(), PATHINFO_FILENAME);
// extract extenstion
$extension = pathinfo($fileupload_dt->getClientOriginalName(), PATHINFO_EXTENSION);
// create new file name.
$imageName = $fileName."-".time().".".$fileupload_dt->getClientOriginalExtension();
$uploadPath = 'public/ArchiveImg/img';
$fileupload_dt->move($uploadPath,$imageName);
$imageUrl = $uploadPath.$imageName;