社区
Web 开发
帖子详情
jsp能否将二进制文件流写到页面上?
tongshushan
2010-08-23 12:50:40
InputStream blobStream = cf.getContent().getBinaryStream();//文件内容是从Oracle Blob类型字段里取出来
怎样能将这个InputStream 写到页面了向用户展示文件内容?
...全文
266
11
打赏
收藏
jsp能否将二进制文件流写到页面上?
InputStream blobStream = cf.getContent().getBinaryStream();//文件内容是从Oracle Blob类型字段里取出来 怎样能将这个InputStream 写到页面了向用户展示文件内容?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
11 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
tongshushan
2010-08-23
打赏
举报
回复
[Quote=引用 1 楼 chouy 的回复:]
设置一下输出的文字类型,然后输出就行了.
就像请求图片那样.
[/Quote]
就像请求图片那样 是什么意思?
商科程序员
2010-08-23
打赏
举报
回复
设置一下输出的文字类型,然后输出就行了.
就像请求图片那样.
axman
2010-08-23
打赏
举报
回复
byte[] buffer = new byte[10];这个缓冲开得也太小了。建立1024*x
axman
2010-08-23
打赏
举报
回复
你把字节数组当作字符串输出,当然输出的是这个数组的toString方法,当然是[B@1f78dde[B@1f78dde[B@1f78dde[B@1f78dde[B@1f78dde[B@1f78dde[B@1f78dde[B@1f78dde[B@1f78dde[B@1f78dde[B@1f78dde[B@1f78dde[B@1f78dde[B@1f78dde[B@1f78dde[B@1f78dde
这是正确的结果,如果不是这样那就不正常了。
要把二进制内容正确输出应该是:
InputStream blobStream = cf.getContent().getBinaryStream();
response.setHeader("Content-Disposition", "attachement;filename=a.xml;");
response.setContentType("application/xml;charset=utf-8");
ServletOutputStream out = respone.getOutputStream(); //这前不能有getWriter的调用
byte[] buffer = new byte[10];
int nbytes = 0;
while ((nbytes = blobStream.read(buffer)) != -1){ out.write(buffer,0,nbytes);
}
out.flush();
blobStream.close();
magong
2010-08-23
打赏
举报
回复
[Quote=引用 7 楼 tongshushan 的回复:]
InputStream blobStream = cf.getContent().getBinaryStream();
[/Quote]
如果你确信字段中存储的确实是文字,是否可以尝试在blobStream套一个Reader来读字符呢,如
Reader reader = new InputStreamReader(blobStream);
然后用read()方法读字节,用print写出
试试看
sebatinsky
2010-08-23
打赏
举报
回复
楼主记住的是就是几乎需求都是可以的,只是实现的方式而已,很多时候,可以google,
tongshushan
2010-08-23
打赏
举报
回复
InputStream blobStream = cf.getContent().getBinaryStream();
response.setHeader("Content-Disposition", "attachement;filename=a.xml;");
response.setContentType("application/xml;charset=utf-8");
byte[] buffer = new byte[10];
int nbytes = 0;
while ((nbytes = blobStream.read(buffer)) != -1){ out.print(buffer);
}
blobStream.close();
我用的是这段代码,但是输出的是这些东西:
[B@1f78dde[B@1f78dde[B@1f78dde[B@1f78dde[B@1f78dde[B@1f78dde[B@1f78dde[B@1f78dde[B@1f78dde[B@1f78dde[B@1f78dde[B@1f78dde[B@1f78dde[B@1f78dde[B@1f78dde[B@1f78dde
而不是xml的内容。
tongshushan
2010-08-23
打赏
举报
回复
[Quote=引用 5 楼 axman 的回复:]
“multipart/form-data指定用流来显示”
不懂不要装。multipart/form-data是用来从客户端向服务端上传时用的mime.
要向页面输出你的binary内容要首选 知道它原来的是什么类型的内容。比如是image还是doc?
知道了原来的类型可以输出相应的mime,然后内容直接输出去就行了。
[/Quote]
数据是从服务器端的数据库来的,不是从客户端来的。类型是xml或者properties,写到页面的目的就是要让客户看到当前的配置文件的内容。
axman
2010-08-23
打赏
举报
回复
“multipart/form-data指定用流来显示”
不懂不要装。multipart/form-data是用来从客户端向服务端上传时用的mime.
要向页面输出你的binary内容要首选 知道它原来的是什么类型的内容。比如是image还是doc?
知道了原来的类型可以输出相应的mime,然后内容直接输出去就行了。
Sharesin
2010-08-23
打赏
举报
回复
设置一下响应格式,应该就可以了,不过必须是jsp支持的格式
simaa0106
2010-08-23
打赏
举报
回复
可以写。
multipart/form-data指定用流来显示。
后台代码的话自己百度下吧。一大堆
JSP
(全称JavaServer Pages)
JSP
(全称JavaServer Pages)是由Sun Microsystems公司主导创建的一种动态...
JSP
编译器可以把
JSP
文件
编译成用Java代码写的Servlet,然后再由Java编译器来编译成能快速执行的
二进制
机器码,也可以直接编译成
二进制
码。
jsp
文件
上传下载通用包
对于大容量的
二进制
数据或包含非 ASCII 字符的文本来说,这种编码不能满足要求。 multipart/form-data:form 设定了enctype=“multipart/form-data”属性后,表示表单以
二进制
传输数据 . Commons-...
jsp
-企业人事管理系统.rar.tar.gz
Servlet全称“Java Servlet”,中文意思为小服务程序或服务连接器,是运行在...
JSP
编译器可以把
JSP
文件
编译成用Java代码写的Servlet,然后再由Java编译器来编译成能快速执行的
二进制
机器码,也可以直接编译成
二进制
码。
网上购物系统(JavaBean+Servlet+
jsp
).zip
Spring框架是由于软件开发的复杂性而创建的。Spring使用的是基本的JavaBean...
JSP
编译器可以把
JSP
文件
编译成用Java代码写的Servlet,然后再由Java编译器来编译成能快速执行的
二进制
机器码,也可以直接编译成
二进制
码。
jsp
商品进销存系统.rar.tar.gz
Spring框架是由于软件开发的复杂性而创建的。Spring使用的是基本的JavaBean...
JSP
编译器可以把
JSP
文件
编译成用Java代码写的Servlet,然后再由Java编译器来编译成能快速执行的
二进制
机器码,也可以直接编译成
二进制
码。
Web 开发
81,092
社区成员
341,716
社区内容
发帖
与我相关
我的任务
Web 开发
Java Web 开发
复制链接
扫一扫
分享
社区描述
Java Web 开发
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章