java实现文件下载,兼容IE和火狐的方法

String path = url;
String name = resources.getResourceName();
File file = new File("D:\\"+path);

String agent = request.getHeader("User-Agent");
boolean isMSIE = (agent != null && agent.indexOf("MSIE") != -1);
if (isMSIE) {
name = URLEncoder.encode(name, "UTF-8");
} else {
name = new String(name.getBytes("UTF-8"), "ISO-8859-1");
}
response.setHeader("Content-Disposition", "attachment; filename=" + name);

//response.setContentType(fileminitype);
response.setHeader("Location",name);
// response.setHeader("Cache-Control", "max-age=" + cacheTime);
response.setContentLength((int) file.length());
OutputStream outputStream = response.getOutputStream();
InputStream inputStream = new FileInputStream(file);
byte[] buffer = new byte[1024];
int i = -1;
while ((i = inputStream.read(buffer)) != -1) {
  outputStream.write(buffer, 0, i);
  }
outputStream.flush();
outputStream.close();
inputStream.close();
outputStream = null;

猜你喜欢

转载自fhg2010.iteye.com/blog/1147808