社区
Web 开发
帖子详情
jsp能否将二进制文件流写到页面上?
tongshushan
2010-08-23 12:50:40
InputStream blobStream = cf.getContent().getBinaryStream();//文件内容是从Oracle Blob类型字段里取出来
怎样能将这个InputStream 写到页面了向用户展示文件内容?
...全文
287
11
打赏
收藏
jsp能否将二进制文件流写到页面上?
InputStream blobStream = cf.getContent().getBinaryStream();//文件内容是从Oracle Blob类型字段里取出来 怎样能将这个InputStream 写到页面了向用户展示文件内容?
复制链接
扫一扫
分享
转发到动态
举报
AI
作业
写回复
配置赞助广告
用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指定用流来显示。
后台代码的话自己百度下吧。一大堆
Struts1 上传
二进制
流
在这个方法里,我们需要解析请求中的
文件
内容,将
二进制
流保存到服务器的磁盘上,或者存储到数据库中。 在Struts1中,使用`Commons FileUpload`库可以方便地处理
文件
上传。首先,需要在`struts-config.xml`配置
文件
...
js 显示base64编码的
二进制
流网页图片
这种编码方式主要适用于编码那些无法直接通过文本格式传输的数据,比如图片、音频、视频等
二进制
文件
。Base64编码通过把每3个字节的
二进制
数据转换为4个字符来实现编码过程,每个字符代表着6个比特的信息,因此编码...
Ajax发送和接收
二进制
字节流数据的方法
Ajax(Asynchronous JavaScript and XML)技术作为一种无刷新更新
页面
的技术,也扩展了其能力,支持发送和接收
二进制
字节流数据。本文将详细介绍如何利用Ajax进行
二进制
数据的传输。 ### 发送
二进制
数据 在HTML5的...
pdf.js使用
文件
流预览pdf
PDF.js支持
文件
流预览,意味着我们可以从服务器获取PDF的数据流,然后逐步解析和显示内容,而不需要等待整个
文件
下载完成。 要使用PDF.js实现
文件
流预览PDF,我们需要以下几个步骤: 1. **设置项目环境**:由于...
查询mysql数据库中的
二进制
图片数据,并全部显示出来
在本示例中,我们将探讨如何查询包含
二进制
图片数据的MySQL数据库,并通过
JSP
(JavaServer Pages)展示这些图片。这是一个基本但实用的Web应用开发场景。 首先,我们需要一个MySQL数据库表来存储图片数据。表结构...
Web 开发
81,122
社区成员
341,744
社区内容
发帖
与我相关
我的任务
Web 开发
Java Web 开发
复制链接
扫一扫
分享
社区描述
Java Web 开发
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章