我有一个场景,图像应该显示在我的Jquerymobile模板中。这些图片来自MySQL数据库。图像类型是blob类型,我使用PHP来检索我的数据,如下
<?php
include 'configure.php';
$qr = "SELECT * FROM food_beverage";
$res= mysql_query($qr);
$i=0;
while($row = mysql_fetch_array($res))
{
$restau_arr[$i]["fb_sno"] = $row["fb_sno"];
$restau_arr[$i]["fb_name"] = $row["fb_name"];
$restau_arr[$i]["fb_type"] = $row["fb_type"];
$restau_arr[$i]["fb_location"] = $row["fb_location"];
$restau_arr[$i]["fb_img"]= $row["fb_img"];
$restau_arr[$i]["fb_phno"]= $row["fb_phno"];
$restau_arr[$i]["fb_email"]= $row["fb_email"];
$i++;
}
header('Content-type: application/json');
echo json_encode($restau_arr);
?>
数据库中的值存储在一个数组中,并被转换为JSON格式,以便我可以使用以下jquery行调用它们-
var url = "retrieve_all.php";
$.getJSON(url, function(json) {
.......
.......
....... }
一旦在这个函数中接收到值,我就使用-将它们附加到相应的HTML字段中
$.each(json, function(i,v) {
var restauName = v.fb_name;
var restauLoc = v.fb_location;
var restauNum = v.fb_phno;
var restauImg = v.fb_img;
$("#restauName").html(restauName);
$("#restauLoc").html(restauLoc);
$("#restauNum").html(restauNum);
$("#restauImg").html(restauImg);
});
我能够理解图像不应该被当作JSON格式。但是如何处理呢?我应该在PHP中做什么才能在页面/屏幕上显示我的blob图像?
这种方法正确吗?
为此,一开始我在这里寻求帮助,但我的情况似乎有所不同。
这更多的是给你一个解决方案的注释,而不是"点击此处查看结果";但是试试这个:
- 除了图像,你还有一个有效的解决方案吗
- 图像大吗?
- 如果它们是图标,我会将图像数据嵌入到同一个JSON响应中(见末尾)
- 如果它们是照片,我会返回一个URL,并有第二个HTTP请求来下载它们。您可以附加<img>元素通过AJAX响应处理程序发送到文档
- 图像服务脚本将获取ID,对其进行验证,然后返回DB字段值
- 您需要确保二进制数据上没有字符集转换,否则图像将被损坏
将所有内容嵌入单个响应
- rfc2397
- 使图像JSON项看起来像:
data:image/jpeg;base64,base_64_encoded_jpeg_goes_here
- 显然,您可以更改mime编码以满足您的需要
- 添加一些JS来获取此字符串,并附加<img>元素,将该数据作为src属性
我有一个JSON到img元素的粗略演示(带有外部文件)。