一下代码运行没有问题,但下载保存后的文件有残缺,帮我看看吧:<%
//源文件名
String filename = "aa.jpg";
//源文件存放路径
String filePath = "d:\\jiaoan\\uploads\\";
// 设置响应头和下载保存的文件名
response.setContentType("APPLICATION/OCTET-STREAM");
response.setHeader("Content-Disposition","attachment; filename=\"" + filename + "\"");
// 打开指定文件的流信息
java.io.FileInputStream fileInputStream = new java.io.FileInputStream(filePath + filename);
// 写出流信息
int i;
while ((i=fileInputStream.read()) != -1) {
out.write(i);
}
//关闭文件
fileInputStream.close();
out.close();
%>
//源文件名
String filename = "aa.jpg";
//源文件存放路径
String filePath = "d:\\jiaoan\\uploads\\";
// 设置响应头和下载保存的文件名
response.setContentType("APPLICATION/OCTET-STREAM");
response.setHeader("Content-Disposition","attachment; filename=\"" + filename + "\"");
// 打开指定文件的流信息
java.io.FileInputStream fileInputStream = new java.io.FileInputStream(filePath + filename);
// 写出流信息
int i;
while ((i=fileInputStream.read()) != -1) {
out.write(i);
}
//关闭文件
fileInputStream.close();
out.close();
%>
解决方案 »
- 在MyEclipse中JSP页面有图片现实,到浏览器内图片都报错怎么回事
- 怎么用Ajax实现jsp页面局部实时刷新(紧急求救,在线等大虾帮忙)
- hibernate的问题 请来看
- 怎么提交一个表单能像ajax一样,不刷新当前的页面,也不出现表单处理页面
- jsp页面中的javabeen,servlet中如何得到这个javabeen的实例?
- 请高手帮忙解答关于“登陆”问题,急!!!中午就要结果啊,我是菜鸟,分不是问题
- 急用:JSP如何实现让打印机打印特定目录中的所有文件
- 如何制作互动的下拉列表(两个列表都涉及到数据库),在线等待!!!!
- 5555!偶有很大麻烦啊!各位帮帮忙!急啊
- javaweb实现在线浏览office文档(word,excel,ppt)
- 我是jsp初学者,有2个问题想问大家,请大家进来看看,谢谢!
- 文件上传表单无法得到其它参数域的值……
你可用以下语句尝试一下,看看能否解决问题
FileInputStream fis = new FileInputStream(filePath + filename);
OutputStream outs = response.getOutputStream();
byte[] buf = new byte[4*1024];
int bytesRead;
while ((bytesRead = fis.read(buf)) != -1) {
outs.write(buf,0,bytesRead);
}
File ff = new File(filePath + File.separatorChar + fName);
byte[] buffer;
int length = (new Long(ff.length())).intValue();
buffer = new byte[1024]; iin = new BufferedInputStream(new java.io.FileInputStream(ff));
//设置类型和头信息
response.setContentType("application/octet-stream");
response.setHeader(
"Content-Disposition",
"attachment;filename=" + TranCodeBean.tranCodeC(fRealName));
int len = iin.read(buffer, 0, buffer.length);
dout = new BufferedOutputStream(response.getOutputStream());
while (len != -1) {
dout.write(buffer, 0, len);
len = iin.read(buffer, 0, buffer.length);
} } catch (Exception e) {
e.printStackTrace();
} finally {
iin.close();
dout.flush();
dout.close();
}
response.setHeader("Content-Type", "application/force-download;");
response.setHeader("Content-disposition","attachment; filename=" + filename + "");
//打开指定文件的流信息
java.io.BufferedInputStream bis = null;
java.io.BufferedOutputStream bos = null;
try {
bis = new java.io.BufferedInputStream(new java.io.FileInputStream(filepath + filename));
bos = new java.io.BufferedOutputStream(response.getOutputStream()); byte[] buff = new byte[10*1024];
int bytesRead;
//写出流信息
while(-1 != (bytesRead = bis.read(buff, 0, buff.length))) {
bos.write(buff,0,bytesRead);
}
}catch(final java.io.IOException e) {
//失败显示错误信息
System.out.println ( "文件下载出错! " + e );
}finally{
//完成后关闭输入/输出流
if (bis != null) bis.close();
if (bos != null) bos.close();
}