Php 从存储文件夹中提供图像以在Laravel 5中查看
在浏览了几乎所有的谷歌搜索结果之后,我仍然无法修复这个问题 在我的应用程序中,用户可以上传图片。因为用户的数据非常敏感,所以我将所有内容都保存在存储文件夹中,并使用php为图像提供服务 查看Php 从存储文件夹中提供图像以在Laravel 5中查看,php,image,laravel,Php,Image,Laravel,在浏览了几乎所有的谷歌搜索结果之后,我仍然无法修复这个问题 在我的应用程序中,用户可以上传图片。因为用户的数据非常敏感,所以我将所有内容都保存在存储文件夹中,并使用php为图像提供服务 查看 <img src="{{ asset('logo/' . $organization->logo_thumbnail_path) }}" alt=""> 路由在storage/app/img/logo中查找相应的文件名。如果我回显Storage::disk('logo-image')->
<img src="{{ asset('logo/' . $organization->logo_thumbnail_path) }}" alt="">
路由在storage/app/img/logo
中查找相应的文件名。如果我回显Storage::disk('logo-image')->get($logo)
,我会看到一个巨大的奇怪字符页面,这让我相信它确实得到了实际的.jpg图像
但是,即使我直接访问路线,图像也不会显示
此外,如果我更改路径以返回主页,并打开应在其中渲染图像的视图,则什么也不会发生。这让我相信,从未从
标记中调用路由
你们当中有人知道更多吗?我被困住了,几个小时的搜索什么也没做
编辑:手动设置响应中的所有标题和内容,确保显示图像。似乎答案相当简单,我没有返回
$image->response()
所以返回$image-response()代码>一切正常
谢谢你,溺水 我在这里胡乱猜测,但我假设头是正确的?我使用的是干预/图像库,它声明我调用的response()方法应该提供所有正确的头。另外,如果我回显$image->response
,我会看到另一个巨大的页面,上面有奇怪的字符。是的,这就是我在我的问题中所做的,只是它不起作用。这不是重复,因为他使用的第三方代码与这个问题毫无关系。有没有办法检查请求是否来自外部域?我的意思是,返回外部请求的图像,但如果用户直接在浏览器中输入路线,则显示视图。你的确切意思是什么?每个请求都是外部的,只要它不是来自执行代码的同一服务器。例如:https://media.giphy.com/media/3ohzdNzYZoPbJwLHtC/giphy.gif
此gif可用于img
标记,并加载图像。但是,如果我们直接在浏览器中访问链接,就会显示一个页面(不仅仅是图像)。这个问题很酷,我不知道giphy是如何解决这个问题的。我可以想象他们正在解析请求头以查看用户代理,然后使用javascript在图像周围显示html。也许值得为此问一个新问题,我找不到任何你想要的教程。(顺便说一句,呵呵)也许你想帮我一些想法:谢谢。
Route::get('logo/{logo}', function($logo) {
$image = Image::make(Storage::disk('logo-image')->get($logo));
$image->response();
});