String filename = "servlet学习资料.docx";
if(request.getHeader("User-Agent").toLowerCase().indexOf("firefox") > 0) {
//firefox浏览器
filename = new String(filename.getBytes("UTF-8"), "ISO8859-1");
} else if (request.getHeader("User-Agent").toUpperCase().indexOf("MSIE") > 0){
//IE浏览器
filename = URLEncoder.encode(filename, "UTF-8");
} else {
filename = URLEncoder.encode(filename, "UTF-8");
}
response.setContentType("text/html;charset=utf-8");
response.setHeader("Content-Disposition", "attachment; filename=" + filename);
//把图片读入到内存中
String path = this.getServletContext().getRealPath("/images/servlet学习资料.docx");
FileInputStream fis = new FileInputStream(path);
OutputStream ops = response.getOutputStream();
int len = 0; //实际每次读取了多少字节
byte[] b = new byte[1024]; //做一个缓冲字节数组
while ((len = fis.read(b)) > 0) {
ops.write(b, 0, len);
}
ops.close();
fis.close();