如何使用Laravel 4中的图像返回文本
我正在使用Laravel 4应用程序,并且在我的控制器中编写了一个名为show()
的方法,该方法从路由中获取id
,并从数据库中创建一个数组元素,这些元素将返回一个图像。 我可以使用Response::make()
和一个标题返回没有文字的图像,但如果我将它与数据绑定,它将无法读取图像。如何使用Laravel 4中的图像返回文本
我试着这样做:
public function show($id){
$onlineAd = OnlineAds::where('id', $id)->get(array('title', 'short_description', 'full_description'));
$fileName = OnlineAds::find($id)->image;
$path = 'app/storage/uploads/mobile/' . $fileName;
return Response::json([
"data" => $onlineAd,
"Image"=> base64_encode(File::get($path))
]);
}
这将返回完美的数据,而是将图像恢复为不可读的文本。 有什么建议吗?
我假设你不这样做已经在看,这就是我的意思的“代码来处理图像的显示”
在src
属性插入之前,您应该格式化图像载荷正确。
改变此位的代码如下所示:
return Response::json([
"data" => $onlineAd,
"Image"=> 'data:image/png;base64,' . base64_encode(File::get($path))
]);
到包括data
和mime type
和逗号后的base64
。
修改相应的mime type
,image/png
,image/jpg
等
没有改变输出,甚至有点。它仍然给我不可读的文本,而不是图像 –
检查'base64'字符串,看看它是否有效,然后检查我发布的参考问题上的答案。如果你可以用视图中的部分来编辑你的文章,那也会很不错:) –
10你可以做的另一件事是在文档上做一个查看源,并发布实际显示的内容 –
我已成功所需的输出,但还不能确定这是否是显示的最佳方式文本旁边的图像,
这里是我的代码:
$fileName = OnlineAds::find($id)->image;
$path = 'app/storage/uploads/mobile/' . $fileName;
$data=base64_encode(file_get_contents($path));
$src= 'data: '.mime_content_type($path).';base64,'.$data;
echo '<img src="' . $src . '" />';
return Response::json([
"data" => $onlineAd,
]);
所以,我回应了图像并返回了文本,如果您有更好的解决方案,并且返回它们两个都没有echo语句,那么请不要犹豫提供它。
你能发表显示或处理图像显示的相关代码吗? –
@AlexAndrei它上面,这又是 返回响应:: JSON([ “数据”=> $ onlineAd, “图像”=> BASE64_ENCODE(文件::得到($ PATH)) ]) ; –