我是Laravel的新手,我正试图从我的网站上显示亚马逊s3存储桶中的图像,但是我收到了FileNotFoundException错误。任何帮助将不胜感激。
我的路线:
Route::get('s3-image-upload','S3ImageController@getImage');
控制器:
public static function getImage (Request $imagePath)
{
return Storage::disk('s3')->get($imagePath);
}
查看:
{!!Html::image(getImage($myPath)!!}
答案 0 :(得分:0)
$imagePath
是Request
个实例,而不是图片网址。您需要从请求中获取URL。假设您在请求中有一个名为filename
的字段:
public static function getImage (Request $request)
{
$filename = Input::get("filename"); // OR
$filename = $request->get("filename");
return Storage::disk('s3')->get($filename);
}
答案 1 :(得分:0)
您可以添加如下访问器来获取图像URL
它返回图像的URL,您可以通过$ profile-> image
访问它public function getImageAttribute($value)
{
if ($value) {
return Storage::disk('s3')->url($value);
}
return "https://source.unsplash.com/96x96/daily";
}
我假设您将图像保存如下
$path = $request->file('image')->store('images', 's3');
Storage::disk('s3')->setVisibility($path, 'public');
$profile->update([
'image' => $path
]);
您可以检查此提交以获取更多详细信息
https://github.com/itxshakil/ediary/commit/23cb4b1cb7b8a4eac68f534e8c5b6897abc6421a