如何在blade laravel 5.2中显示来自aws s3的图像

Hyo*_*ipo 3 php amazon-s3 amazon-web-services laravel-5

我创建了一种从 aws S3 获取数据(图像文件)的方法,如下所示:

 public static function getImage ($imagePath)
    {
        if(Storage::exists($imagePath))
        {
            return Storage::disk('s3')->get($imagePath);
        }else
        {
            return 'No Image';
        }
    }
Run Code Online (Sandbox Code Playgroud)

我确信这些图像存在于 aws 上,所以没有问题。然后我使用上面的方法作为我的刀片视图中的 src,如下所示:

{!!Html::image(getImage($myPath),'logo',['width'=>60,'height'=>55])!!}
Run Code Online (Sandbox Code Playgroud)

这里的 $myPath 已经指向 aws 上的特定文件,例如:bucket/file.jgp。但是当我运行我的网页时,这个 Html::Image 给出了这样的视图: 在此处输入图片说明

这里发生了什么 ?为什么 Html::image 无法呈现我的图像文件?:(

Jam*_*guo 6

适用于 Laravel 6.x

<img src="{{Storage::disk('s3')->url($imagePath)}}">
Run Code Online (Sandbox Code Playgroud)


Sky*_*lit 5

您可以使用Storage::url($imagePath)。请参阅laravel 文档上的文件系统/云存储

  • `Storage::disk('s3')-&gt;url($filePath)` 应该可用。然后显示图像只需要设置图像`src`标签到这个方法的结果 (2认同)

Vik*_*kas 2

{!!Html::image(<Your S3 bucket URL>.$myPath),'logo',['width'=>60,'height'=>55])!!}
Run Code Online (Sandbox Code Playgroud)

您可以将 S3 URL 保存在配置文件中并使用配置值,而不是每次都写入实际值。