2016-08-23 147 views
0

我創建了一個方法,從AWS獲取數據(圖像文件)S3這樣的:如何在刀片laravel顯示來自AWS的S3圖像5.2

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

我敢肯定,這些圖像是存在於aws,所以這沒有問題。這裏

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

$ mypath中已經指出的,例如AWS特定文件: 然後我用上面的方法爲SRC在我的刀片鑑於這樣的桶/ file.jgp。但是當我運行我的網頁時,這個Html :: Image給出了這樣的視圖: enter image description here

這是怎麼回事?爲什麼Html :: image無法渲染我的圖像文件? :(

+0

只是'{{HTML ::圖像($ mypath中)}}' – vitr

+0

http://laravel-recipes.com/recipe s/185/generated-an-html-image-element –

+0

如果我只使用HTML :: image($ myPath),它會給出一個空的圖像...... :) –

回答

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

您可以保存S3 URL在配置文件中,並使用配置值,而不是寫實際值每次的。

+0

感謝您的答案@Vikas。 ..看起來我在這裏有一個桶權限問題..:v –

+0

您還應該在存儲時設置可見性圖像到S3'Storage :: disk('s3') - > put('file.jpg',$ contents,'public');'。 [文件可見性](https://laravel.com/docs/5.2/filesystem#file-visibility) – Vikas

+0

mmmm .....什麼是$ contents @Vikas ...? :) –

0

可以使用Storage::url($imagePath)請參閱Filesystem/Cloud storage上laravel文檔

+0

這是不正確的。 disk() - > get()會返回原始圖像內容字符串 – scottevans93

+0

Storage :: url未定義...我不能使用它,所以我使用Storage :: disk() - > get instead。 。:) –

+0

'Storage :: disk('s3') - > url($ filePath)'應該是可用的。然後顯示圖像只需要設置圖像的src標籤到這個方法的結果 – Skysplit

0

我有同樣的問題。這段代碼解決了這個問題

<img src="{!! url(<path to your image>) !!}" /> 
相關問題