Laravel无法显示图片

9

我有一个 view.blade.php 文件,内容如下:

{{HTML::image('resources/views/Folder/Subfolder/Subfolder/Photo/'.$item->Photo)}}

$item->Photo 从数据库中获取图片名称。

在同一视图中,我使用了use HTML;,屏幕上显示的是:

<img src="http://localhost:8000/resources/Folder/Subfolder/Subfolder/Photo/3da0d12d6d8667963392a446262b1773.jpg">

如果我将{{HTML::image....替换为以下内容:
<img src="resources/Folder/Subfolder/Subfolder/Photo/{$item->Photo}}" alt="NO PHOTO">

我在屏幕上看到了这个:

<img src="http://localhost:8000/resources/Folder/Subfolder/Subfolder/Photo/3da0d12d6d8667963392a446262b1773.jpg">

NO PHOTO

这张图片是存在的,我在文件夹中看到了它。我做错了什么,只是不知道错在哪里。

我在想 Laravel 可能要求图片放在特定的文件夹中... 这可能是问题的原因吗?你有什么想法吗?

在我的控制器中,我有以下代码:

$destinationPath = base_path().'\resources\Folder\Subfolder\Subfolder\Photo';
            chmod($destinationPath,0777);

这张图片的大小是7.673字节。我试过另一张图片,但它也不起作用。看起来有些东西阻止了所有浏览器在localhost上显示图片。

有人遇到过这个问题吗?我不知道还应该尝试什么...


上面的图片显示正常吗?你是用Laravel展示的吗? - Rock Rathore
我看不到图片,这就是问题。 - Texas
调试您浏览器中的图像URL,将其在新标签页中打开并查看路径是否正确。 - Rock Rathore
我在页面源代码中看到了这个: <img src="http://localhost:8000/Photo/3da0d12d6d8667963392a446262b1773.jpg" > 这是你想知道的吗?我做了一些更改,现在我有了这个:{!!HTML::image('Photo/'.$item->Photo, 'NO PHOTO', array( 'width' => 200, 'height' => 200))!!} 在屏幕上我看到了 NO PHOTO。 - Texas
3个回答

11
在Laravel 5中,如果您计划在public文件夹中使用图像,请遵循以下步骤:
在Laravel 5的public文件夹下创建images文件夹。
之后我所做的是使用URL :: to('/')返回基本URL,然后您可以像以下示例一样添加图像文件夹位置:
<img src="{{ URL::to('/') }}/images/{{ $item->Photo }}" alt="{{ $item->Title }}" />

或者所有这些都在大括号里面

<img src="{{ URL::to('/images/' . $item->Photo) }}" alt="{{ $item->Title }}" />

不应该在资源文件夹中给予写权限。

{{ URL::to('/images') }} 会在本地主机环境下生成 http://localhost/images

图片位置位于 your_laravel_project/app/public/images 文件夹中。

如果你想要保护你的图片不被公开查看,只有经过身份验证的用户才能查看这些图片,请访问以下链接:

如何在 Laravel 5 中保护图片不被公开查看?

注意:URL::to('/') 返回基础 URL,并且可以以不同的方式使用。你可以在这里找到关于它的深入信息。

参考链接:http://laravel.com/api/5.1/Illuminate/Contracts/Routing/UrlGenerator.html#method_to


这正是我在寻找的... 我只想知道 URL::to('/') 是做什么用的? - Texas
你之前不是建议我把图片放在资源文件夹里吗? - Sven van den Boogaart
@svenb 我看到了你的问题,我不建议你那么做,我建议你保护你的图像文件夹,但是你想找到权限问题也是可以理解的。如果这里的答案可以用在你的情况下,我会很高兴;如果不能,那么我认为你在问题中遇到的问题可能与此处不同。之前我只是想帮你找到其他解决方案。让我知道是否仍然需要,我可以帮你查看。 - Maytham Fahmi
如何在CSS中使用? - romal tandel

2
{{ asset("storage/uploads/$notes->file_name")}}

这对我很有帮助。我的文件存储在uploads/storage/app/public文件夹中。尝试了很多方法。结果发现虽然有点混乱,但一旦理解就非常简单。我使用的是laravel 5.4。


0
如果您计划在公共文件夹中使用图像,请使用Laravel 5显示图像。在Laravel 5中,要在公共文件夹下显示图像文件夹很简单:
<img class="img-responsive menu-thumbnails" src="{{ asset($item->photo) }}"/>

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