如果图像存在则如何显示;如果图像不存在则如何显示

时间:2017-09-29 19:36:07

标签: laravel lumen

尝试弄清楚如果图像存在时如何显示图像,如果图像不存在则尝试默认图像。继承了我到目前为止所拥有的内容,但检查该文件的语句似乎不起作用:

@if (file_exists(public_path('img/{{ $product->sku }}.jpg')))
    <img src="img/{{$product->sku}}.jpg">
@else
    <img src="img/logo.gif">
@endif

继承我的完整刀片代码。一切都有效,除了图像:

<div class="products-gallery">
    <h2>{{$product->prd->description_long}}</h2>
    <p><strong>ITEM SKU:</strong> {{$product->sku}}</p>  
    <p><strong>PRICE:</strong> {{$product->prd->Jobber}}</p>
    @if (file_exists(public_path('img/{{$product->sku}}.jpg')))
        <img src="img/{{$product->sku}}.jpg">
    @else
        <img src="img/logo.gif">
    @endif
</div>

3 个答案:

答案 0 :(得分:2)

虽然您询问了Laravel实现,但您也应该知道您可以在纯JavaScript中执行此操作并避免验证文件是否存在:

<img src="img/{{$product->sku}}.jpg" onerror="this.onerror=null;this.src='img/logo.gif';" />

写入的代码较少,这也会处理其他错误(例如文件存在但已损坏)。

希望这有帮助。

答案 1 :(得分:1)

@if (file_exists(public_path().'/img/'.$product->sku))
    <img src="{{ asset('img/'.$product->sku) }}">
@else
    <img src="{{ asset('img/logo.gif') }}">
@endif

图片扩展程序(正如您提到的.jpg)在您上传时默认保存。希望它有所帮助!

答案 2 :(得分:0)

使用资产(&#39; / img /&#39;。$ product-&gt; sku。&#39; .jpg&#39;)方法