首页 > 解决方案 > Laravel 上传图片使用干预图片并生成唯一名称

问题描述

我正在使用 laravel 5.8 和干预图像来上传和调整图像大小。

我想将它存储在storage/app/public/images文件夹中,我正在尝试使用存储外观来自动生成一个唯一的名称,但以下内容不起作用:

 $file = $request->file('file');

 $image = Image::make($file->getRealPath())->resize(360, 180);
 Storage::disk('public')->putFile('images', $image->getEncoded());

是否可以使用类似于上传普通文件时的图像的存储外观自动生成唯一的文件名,如下所示:

Storage::disk('local')->putFile('forms', $request->file('file'));

标签: image-uploadinglaravel-5.8intervention

解决方案


上传的文件在您的应用程序中上传时使用临时文件名。这些可以用作您可以用来保存的唯一名称。

您可以使用->getPathName()上传文件的方法访问它。

或者,您可以使用->getClientOriginalName()文件的原始名称。

使用Intervention/Image,您可以使用该->save()方法将此图像保存到目标文件夹:

$file = $request->file('file');

$image = Image::make($file->getRealPath())
    ->resize(360, 180)
    ->save(storage_path('app/public/images/'.$file->getPathName());

我没有对此进行测试,但我希望这会有所帮助。


推荐阅读