jsp网页输出二进制图片
我用的是主网页include动态加载子网页,主网页从servlet接收了从数据库查到的物品信息(包含二进制图片),使用byte[]数组存储后传到了子网页,这是从子网页接收...
我用的是主网页include动态加载子网页,主网页从servlet接收了从数据库查到的物品信息(包含二进制图片),使用byte[]数组存储后传到了子网页,这是从子网页接收的二进制图片参数
byte[]pictureByte=request.getParameter("pictureByte").getBytes();
求大神解答怎样将这个byte[]中的二进制数据读成图片啊,图片想显示在这个子网页的一个表格列中
附上我的部分代码,谢谢大神指正
<%.........省略部分其他参数
byte[]pictureByte=request.getParameter("pictureByte").getBytes();//接收图片字节数组
%>
<%
ServletOutputStream targetPic=response.getOutputStream();
targetPic.write(pictureByte);
targetPic.flush();
//这段代码报错,错误信息:Servlet.service() for servlet jsp threw exception
java.lang.IllegalStateException
%>
<img src="">这里面该怎么写?
基本流程草图如上 展开
byte[]pictureByte=request.getParameter("pictureByte").getBytes();
求大神解答怎样将这个byte[]中的二进制数据读成图片啊,图片想显示在这个子网页的一个表格列中
附上我的部分代码,谢谢大神指正
<%.........省略部分其他参数
byte[]pictureByte=request.getParameter("pictureByte").getBytes();//接收图片字节数组
%>
<%
ServletOutputStream targetPic=response.getOutputStream();
targetPic.write(pictureByte);
targetPic.flush();
//这段代码报错,错误信息:Servlet.service() for servlet jsp threw exception
java.lang.IllegalStateException
%>
<img src="">这里面该怎么写?
基本流程草图如上 展开
2个回答
展开全部
你这样试试呢,将图片的流首先在servlet中要设置成图片的格式(response.setContentType("image/jpeg"))好像是这么写来着,像jpg||png||gif之类的,然后在前台显示图片的地方将img标签的src的值指向你的流,应该能成功的,我自己机子上有代码的,但是要等晚上下班回去看下。
希望可以帮助到你。如果有帮助,记得采纳……
希望可以帮助到你。如果有帮助,记得采纳……
更多追问追答
追问
因为方便处理,我的Servlet数据查询得到的ResultSet是传给一个叫main.jsp的页面中,ResultSet中有多个商品信息,所以要循环输出到表格,所以我用的是main.jsp动态include 子网页,main.jsp取出二进制数据放在byte[]中作为参数传到子网页,子网页读取读取byte[]中数据现在图片在一个图片表格中
我想在jsp中处理图片,不是在servlet中,谢谢你的回答
追答
你想在jsp中处理图片什么意思?
2016-02-22 · 百度知道合伙人官方认证企业
育知同创教育
1【专注:Python+人工智能|Java大数据|HTML5培训】 2【免费提供名师直播课堂、公开课及视频教程】 3【地址:北京市昌平区三旗百汇物美大卖场2层,微信公众号:yuzhitc】
向TA提问
关注
展开全部
jsp网页输出二进制图片是通过流的方式实现的。
参考代码如下:
File file = new File("D:/IMAGE/test.jpg");
byte[] bbb = new byte[10240];
try {
InputStream a = new FileInputStream(file);
a.read(bbb);
System.out.println(bbb[0]);
System.out.println(Integer.toBinaryString(bbb[0]));
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
实现思路:这里是一次把图片全读进来,所以定义的数组长度为10240,也就是10kb,当然也可以定义小点,然後分次读。
反正二进制都在这个数组里面,最后两句我只是举了个例子是说明怎麼看这个二进制,第一个是现实二进制对应的整数,第二个是显示二进制了。
参考代码如下:
File file = new File("D:/IMAGE/test.jpg");
byte[] bbb = new byte[10240];
try {
InputStream a = new FileInputStream(file);
a.read(bbb);
System.out.println(bbb[0]);
System.out.println(Integer.toBinaryString(bbb[0]));
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
实现思路:这里是一次把图片全读进来,所以定义的数组长度为10240,也就是10kb,当然也可以定义小点,然後分次读。
反正二进制都在这个数组里面,最后两句我只是举了个例子是说明怎麼看这个二进制,第一个是现实二进制对应的整数,第二个是显示二进制了。
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询