JSP读取BLOB对象写文件出错(在线等)

szbszb 2008-04-19 02:50:40
我要用JSP实现文件上传下载,先将文件读到数据库中,然后下载时写到磁盘,我在将文写入数据库Blob时字节数是正确的,下载时从数据库读出来的字节数也是正确,但在outputstream.write()字节数发生变化,总是多几个字节,导致文件错误打不开,我的代码如下:
<%@ page contentType="text/html; charset=GBK"%>
<%@ page import="java.net.*,java.io.*"%>
<%@ page import="com.dmysoft.model.OavstarGwfj"%>
<jsp:useBean id="oavstarJB" scope="page" class="com.dmysoft.web.jb.OavstarJB"/>
<%
oavstarJB.initialize(request);
try
{
response.setContentType("application/x-download");//设置为下载application/x-download
String filedisplay = request.getParameter("fileName");//下载文件时显示的文件保存名称
filedisplay = URLEncoder.encode(filedisplay.toString(),"UTF-8"); //将文件名转成中文件
response.setHeader("Content-Disposition", "attachment;"
+ " filename=" + filedisplay);
System.out.println(filedisplay);
String tablename = request.getParameter("tablename");
//filedisplay = new String(filedisplay.getBytes("ISO-8859-1"),"gb2312");

String id = request.getParameter("id");
Object object = oavstarJB.getTableBlob(tablename,Integer.parseInt(id));//取得对象
System.out.println(((OavstarGwfj)object).getBody());
byte[] ab = ((OavstarGwfj)object).getBody();//OavstarGwfj对象的Body属性在数据库中是Blob
OutputStream op = response.getOutputStream();
System.out.println("文件字节数====="+ab.length);//这里是正确的
op.write(ab);
op.flush();
op.close();
}
catch(Exception e)
{
e.printStackTrace();
}
%>
...全文
137 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
SWind 2008-04-28
  • 打赏
  • 举报
回复
同楼上 前三行在生成文件的时候会输出三个换行。看一下jsp执行时候的html就会发现 在html的最上方会有很多空行
当然也可以response.reset()一下
yougucao379548695 2008-04-28
  • 打赏
  • 举报
回复
<%@ page contentType="text/html; charset=GBK"%><%@ page import="java.net.*,java.io.*"%><%@ page import="com.dmysoft.model.OavstarGwfj"%><jsp:useBean id="oavstarJB" scope="page" class="com.dmysoft.web.jb.OavstarJB"/><%

开头这样写就不多了。你44吧!
老紫竹 2008-04-27
  • 打赏
  • 举报
回复
<jsp:useBean id="oavstarJB" scope="page" class="com.dmysoft.web.jb.OavstarJB"/>
<%
out.clearBuffer(); // 增加这一句
yaray 2008-04-27
  • 打赏
  • 举报
回复
输出响应前,最好重置一下响应对象: response.reset();

81,091

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧