这是代码publicvoiddownFile(Stringfilepath,Stringfilename,HttpServletResponseresponse){response.reset();response.setContentType("application/x-msdownload");Stringfileheade...
这是代码
public void downFile(String filepath, String filename,HttpServletResponse response) {
response.reset();
response.setContentType("application/x-msdownload");
String fileheader = filename;
try {
byte[] b = fileheader.getBytes("GBK");
fileheader = new String(b, "ISO8859_1");
} catch (UnsupportedEncodingException e2) {
e2.printStackTrace();
}
response.setHeader("content-disposition", "attachment; filename=\""
+ fileheader + "\" ");
FileInputStream fileinputstream;
try {
fileinputstream = new FileInputStream(filepath);
response.setCharacterEncoding("UTF-8");
try {
OutputStream out = response.getOutputStream();
把这个改成//PrintWriter out = response.getWriter();就不报错了。但是出现内容乱码怎么办
int i;
while ((i = fileinputstream.read()) != -1) {
out.write(i);
}
fileinputstream.close();
out.close();
} catch (IOException e) {
e.printStackTrace();
}
} catch (FileNotFoundException e1) {
e1.printStackTrace();
}
}
问题解决了,加上PrintWriter out = response.getWriter();
response.setCharacterEncoding("UTF-8");
response.setContentType("text/html;charset=UTF-8");
response.setHeader("content-type","text/html;charset=UTF-8");
response.setCharacterEncoding("UTF-8");
展开