java web二进制流的图片如何用response返回给前台
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java web二进制流的图片如何用response返回给前台相关的知识,希望对你有一定的参考价值。
代码片段:
InputStream in = connection.getInputStream();
GZIPInputStream gzin = new GZIPInputStream(in);
FileOutputStream file = new FileOutputStream(new File("F:\\123.gif"));
byte[] bytes = new byte[1024*1024];
int length = 0;
while((length=gzin.read(bytes))!=-1)
file.write(bytes,0,length);
file.write(bytes, 0, length);
file.close();
in.close();
以上代码实现了,把网上的一个图片的流拿到,并且写入一个文件中,
现在要实现的是:
把这个图片流用servlet直接返回到前台页面,通过解析在前台JSP页面上把这个图片显示出来
请教如何做!
FileOutputStream很明显你是用的文件流返回的
// 以byte流的方式打开文件 d:\\1.gif
FileInputStream hFile = new FileInputStream(url); //得到文件大小
int i=hFile.available();
byte data[]=new byte[i]; //读数据
hFile.read(data); //得到向客户端输出二进制数据的对象
OutputStream toClient=response.getOutputStream(); //输出数据
toClient.write(data);
toClient.flush();
toClient.close();
hFile.close();
扩展资料:
如果是纯文本使用字符流,如果二进制文件,使用字节流。
如果只是得到信息,原样不动,不进行修改操作,例如文件上传和下载,这时就使用字节流。文件上传:在服务器端把浏览器端信息提取出来。文件下载:把服务器端内容写给浏览器端。
如果要操作的是自定义信息,这时使用字符流。
通过response获取的输出流它的真实类型是什么?
ServletOutputStream response.getOutputStream();
PrintWriter response.getWriter();
ServletOutputStream由于使用字节流多数是原样复制,所以使用write方法,而不是print方法。
PrintWriter:打印流,两个特点:1.可以设置自动刷新。2.可以将信息原样输出。
参考技术A FileOutputStream很明显你是用的文件流返回的
// 以byte流的方式打开文件 d:\1.gif
FileInputStream hFile = new FileInputStream(url);
//得到文件大小
int i=hFile.available();
byte data[]=new byte[i];
//读数据
hFile.read(data);
//得到向客户端输出二进制数据的对象
OutputStream toClient=response.getOutputStream();
//输出数据
toClient.write(data);
toClient.flush();
toClient.close();
hFile.close();本回答被提问者采纳 参考技术B response.setHeader("Content-Type","image/jped");//设置响应的媒体类型,这样浏览器会识别出响应的是图片
response.getOutputStream().write(bytes);
response.flush()
如何用javascript实现图片与二进制的转换?
我现在需要把照片转换成二进制存入数据库,显示的时候又需要把二进制转换成图片,谢谢!
可能没说清楚,再补充一下,与数据库的连接是用c#实现的,我只是想知道如何用JS实现图片与二进制的转换
用别的方式(Java或者C#等等)去连接数据库,把图片文件作为blob对象(二进制大对象)类型存入数据库
------------------------------------------------------
js不能把图片文件以二进制表示 参考技术A js是可以把文件读取为二进制的,不要听他们误导你。
遇到比较深入的问题去firefox mdn上去查找官方文档
var reader = new FileReader();
reader.onload = function(e)
var bin = e.target.result;
// bin is the binaryString
;
reader.readAsBinaryString(file);
我很早就已经在使用了。
遇到网上搜不到的解决方案,去官网,仔细研究。 参考技术B js是做不了文件和二进制的互相转换的,而且按照你的要求是存取数据库,js做不到的。
用别的方式(Java或者C#等等)去连接数据库,把图片文件作为blob对象(二进制大对象)类型存入数据库 参考技术C 一定要这样做吗?
不怎么容易啊好像
图片保存在磁盘不就行了
另外js能操作数据库吗
以上是关于java web二进制流的图片如何用response返回给前台的主要内容,如果未能解决你的问题,请参考以下文章