社区
Web 开发
帖子详情
jsp能否将二进制文件流写到页面上?
tongshushan
2010-08-23 12:50:40
InputStream blobStream = cf.getContent().getBinaryStream();//文件内容是从Oracle Blob类型字段里取出来
怎样能将这个InputStream 写到页面了向用户展示文件内容?
...全文
319
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指定用流来显示。
后台代码的话自己百度下吧。一大堆
JAVA读取数据库存放的
二进制
文件
,并显示在
JSP
页面
上
本文介绍如何使用Java从MySQL数据库中读取多种类型的
二进制
文件
(如doc、pdf、jpg等),并展示将这些
文件
内容呈现在
JSP
页面
上的方法。
jsp
转 java_转:Java/
JSP
中文乱码问题解决心得
本文详细探讨了Java程序中常见的中文乱码问题及其根源,并提供了一系列实用的解决方法,覆盖
JSP
页面
参数处理、数据库交互、
文件
及流操作等多个方面。
springmvc后台获取图片,到
jsp
页面
显示
本文介绍了一种在
JSP
页面
中动态加载图片的方法,并详细解释了前后端代码实现细节。通过JavaScript设置img标签的src属性,从后端Controller获取图片的
二进制
流并返回给前端显示。
jsp
读取数据库中文乱码问题
本文总结了中文乱码问题的解决方案,包括
JSP
与
页面
参数、Java与数据库、Java与
文件
/流之间的乱码处理。在
JSP
中设置请求和响应编码,数据库连接URL指定字符编码,使用InputStreamReader/OutputStreamWriter处理
文件
读写时的编码问题,以避免乱码。
JSP
程序中response对象实现
文件
下载的两种方式
本文介绍
JSP
中利用response对象实现
文件
下载的两种方法:一是通过字节流下载
二进制
文件
;二是通过字符流下载文本
文件
。这两种方法都能有效保护服务器资源路径,并控制下载过程。
Web 开发
81,111
社区成员
341,723
社区内容
发帖
与我相关
我的任务
Web 开发
Java Web 开发
复制链接
扫一扫
分享
社区描述
Java Web 开发
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章