记得是后台输出文件流的话可以正常下载。但是如果是url跳转的方式就会出现这种情况。
解决方案 »
- jsp显示问题
- 100分求怎么取得JS动态生成的下拉列表值
- 自动编号类型不匹配问题
- 工作两年了,技术的瓶颈,难以突破,困惑,有谁可以提提建议!
- 在线等!!显示在线用户的姓名,ID
- log4j只debug自己的包中的类,能否做到??????????
- 想请教下各位一本书上db.ExecSql(strSql)==0是什么意思?
- 微信自定义菜单java.net.ConnectException: Connection timed out: connect
- scriptlet是什么意思?
- 怎么转换时间格式?在线等待
- Spring mvc,rest风格参数出现网址类型的,如何编码
- struts2标签相关的问题?
// fetch the file
String filename = request.getParameter("filename");
String filepath = application.getRealPath("/download/");
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();
fileInputStream.close();
%>
这是download.jsp里的代码。
response.setContentType("application/x-download");
public String download() throws Exception {
String tid = getRequest().getParameter("templateId");
String path = ServletActionContext.getServletContext().getRealPath("/common/scan/template/" + tid);
String fileName = getRequest().getParameter("fileName");
File f = new File(path + "\\" + fileName);
if (!f.exists()) {
getResponse().sendError(404, "File not found!");
return ERROR;
}
BufferedInputStream br = new BufferedInputStream(new FileInputStream(f));
byte[] buf = new byte[1024];
int len = 0; getResponse().reset();
getResponse().setContentType("application/x-msdownload");
getResponse().setHeader("Content-Disposition", "attachment; filename=" + f.getName());
OutputStream out = getResponse().getOutputStream();
while ((len = br.read(buf)) > 0)
out.write(buf, 0, len);
br.close();
out.close();
return null;
}