如何在 Laravel 5.3 中显示图片

4

我将图片存储在公共文件夹中,现在我想显示这张图片,我给出了路径,但是图片没有显示,请问我的代码有什么问题?

我的图片完整路径为public/admin/product。

<img src="public/admin/product/<?php echo $productr['image'];  ?>" height="30px" width="30px">
6个回答

3
首先,不应将这些图像存储在公共目录中,而应使用 Storage 目录。请参阅Laravel文档:https://laravel.com/docs/5.3/structure#the-storage-directory
因此,请将此类图像上传到“storage/app/public”中,然后执行以下artisan命令以创建符号链接: php artisan storage:link 然后创建指向该图像的链接。
<img src="{{ echo asset('storage/file.png') }}" height="30px" width="30px">

在这个文件夹里,我的图片是安全的吗? - shan
请定义安全。所以,您不想使这些图像公开可用/可见? - Parth Vora
不需要使用echo关键字。当我将其删除时,它可以正常工作。 - Chi

2

将路径中的public删除...另外,您可能在变量$productr上打错了字(您是不是想说$product?)请尝试

<img src="admin/product/<?php echo $product['image'];  ?>" height="30px" width="30px">

或者,使用标准的Blade语法:

 <img src="admin/product/{{ $product['image']; }}" height="30px" width="30px">

如果我将图像存储在存储文件夹中,那么我们如何显示它? - shan
你不能直接从存储文件夹中显示图片,必须将其放在公共文件夹中才能访问。如果你使用的是Linux系统,可以创建一个符号链接到公共文件夹中的某个文件夹。 - sigmaxf
但是我不想公开显示图片,那么我该如何保护我的图片? - shan
你无法保护它们,所有图像必须从公共路径提供。如果你确实需要保护它们,你可以通过动态脚本提供,该脚本将通过经过身份验证的 API 生成它。不过,你需要构建它。 - sigmaxf

2

Laravel视图文件blade.php支持{{}}标签以显示值。

{{ $valueToBeDisplayed }}

在您的情况下,您可以这样做

<img src="/admin/product/{{ $product['image'] }}" height="30px" width="30px" />

假设图片名称为abc.png。

确保你在文件夹public/admin/product/中有该图片abc.png。


0
<img src="{{storage/app/images/.($employee -> image)}}" width="50px">

"storage/app/images/" 是存储图像的文件夹路径。


0
@if ($productr['image'])
<img src="{{ asset('images/profile/'.$productr['image']) }}" alt="{{ $category->user->image }}">
@else
<img src="{{ asset('assets/dist/img/default-150x150.png') }}" >
@endif

-1
希望这可以帮助到您。
{{ asset('public/imagepath/image_name') }}

5
你能为你的回答提供一些解释和背景吗? - cccnrc
如果您使用 asset,不需要在 asset 内部添加 'public'。 - Abed Putra

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接