response.getOutputStream();这样抛出文件流 response.getOutputStream();这样抛出文件流提供下载功能的,但下载不成功,提示文件已损坏。求解决 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 我也在搞下载也出问题了我的是这样的 String fileName = result.getString("path"); response.reset(); response.setCharacterEncoding("UTF-8"); response.setContentType("application/vnd.ms-excel"); response.setHeader("Content-Disposition", "attachment; filename=\""+ fileName + "\""); ServletOutputStream sos = response.getOutputStream(); // PrintWriter writer = response.getWriter(); BufferedInputStream fin = new BufferedInputStream(new FileInputStream(fileName)); byte[] content = new byte[1024]; int length; while ((length = fin.read(content, 0, content.length)) != -1) { sos.write(content, 0, length); } fin.close(); sos.flush(); sos.close(); 但是现在我的前台都不弹出下载框,怎么弄啊你的前台是怎么做的? filename = rs.getString("filename").trim();filesize = rs.getInt("filesize");response.setContentType("application/octet-stream");response.addHeader("Content-Disposition", "attachment; filename=\"" + new String(filename.getBytes("gb2312"), "ISO8859-1") + "\";");// //attachment --- 作为附件下载response.addIntHeader("Content-Length", filesize);byte[] fileBuffer = new byte[filesize];InputStream iStream = rs.getBinaryStream("gdata");iStream.read(fileBuffer, 0, filesize);ServletOutputStream out = response.getOutputStream();out.write(fileBuffer);out.flush();out.close();我有个小下载功能是这样做的,文件是保存在数据库里的,当然之前我做测试的时候是放在本地的,都没有问题,部署了也可以,在ff和ie8,9下都没问题 我没有保存啊 ,也是数据库里的流直接流给网页下载了当然了,java会自己保存个临时文件,这个就管不到了 楼主解决了吗?我的也出损坏了,也是生成文件流后没保存本地 直接用response.getOutputStream().write后就出现文件已损坏的提示如果保存到本地的话 就没问题 java语句导出oracle的建表语句 新手上路,路径问题, 关于hibernate的问题 现在比较熟练JSP了?下一步该学什么?请高手们推荐本书 写了一个系统登录界面,但是报错了,麻烦大神们给指教下 java如何把客户端XML文件中的数据读到数据库中? 各位进来帮个忙,实在搞不出来了,简单的问题.struts 如何改java组件的缺省字体? netbeans4.1开发ejb JMS异步消息接问题 求个大神来看下 Ext实现文件下载
也出问题了
我的是这样的
String fileName = result.getString("path");
response.reset();
response.setCharacterEncoding("UTF-8");
response.setContentType("application/vnd.ms-excel");
response.setHeader("Content-Disposition", "attachment; filename=\""+ fileName + "\"");
ServletOutputStream sos = response.getOutputStream();
// PrintWriter writer = response.getWriter();
BufferedInputStream fin = new BufferedInputStream(new FileInputStream(fileName));
byte[] content = new byte[1024];
int length;
while ((length = fin.read(content, 0, content.length)) != -1) {
sos.write(content, 0, length);
}
fin.close();
sos.flush();
sos.close();
但是现在我的前台都不弹出下载框,怎么弄啊
你的前台是怎么做的?
filename = rs.getString("filename").trim();
filesize = rs.getInt("filesize");
response.setContentType("application/octet-stream");
response.addHeader("Content-Disposition", "attachment; filename=\"" + new String(filename.getBytes("gb2312"), "ISO8859-1") + "\";");
// //attachment --- 作为附件下载
response.addIntHeader("Content-Length", filesize);
byte[] fileBuffer = new byte[filesize];
InputStream iStream = rs.getBinaryStream("gdata");
iStream.read(fileBuffer, 0, filesize);
ServletOutputStream out = response.getOutputStream();
out.write(fileBuffer);
out.flush();
out.close();
我有个小下载功能是这样做的,文件是保存在数据库里的,当然之前我做测试的时候是放在本地的,都没有问题,部署了也可以,在ff和ie8,9下都没问题
当然了,java会自己保存个临时文件,这个就管不到了
如果保存到本地的话 就没问题