Laravel上传图片正在使用干预图片并生成唯一名称

时间:2019-10-10 21:41:21

标签: image-uploading laravel-5.8 intervention

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

我想将其存储在storage/app/public/images文件夹中,并且尝试使用Storage Facade自动生成唯一的名称,但是以下操作无效:

 $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'));

2 个答案:

答案 0 :(得分:0)

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

您可以使用上传文件的->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());

我还没有测试过,但是希望对您有所帮助。

答案 1 :(得分:0)

$ image = Image :: make($ request-> file('file'))->调整大小(360、180) ->保存(storage_path('app / public / images /'.$ file-> getPathName());