你的编码格式改了么?可能是因为编码格式的原因
@RequestMapping("/downFile")
public ModelAndView downFile(HttpServletRequest request, HttpServletResponse response,String fileSaveRootPath,String fileName) {
try {
response.reset();
response.setHeader("Content-disposition", "attachment; filename="+fileName);// 设定输出文件头
response.setContentType("text/x-plain");
response.setCharacterEncoding("utf-8");
fileName = new String(fileName.getBytes("iso8859-1"), "UTF-8");
// 得到要下载的文件
File file = new File(fileSaveRootPath + "\" + fileName);
// 如果文件不存在
if (!file.exists()) {
request.setAttribute("message", "您要下载的资源已被删除!!");
System.out.println("您要下载的资源已被删除!!");
return null;
}
// 处理文件名
String realname = fileName.substring(fileName.indexOf("_") + 1);
// 设置响应头,控制浏览器下载该文件
// response.setHeader("content-disposition", "attachment;filename=" + URLEncoder.encode(realname, "UTF-8"));
// 读取要下载的文件,保存到文件输入流
FileInputStream in = new FileInputStream(fileSaveRootPath + "\" + fileName);
// 创建输出流
OutputStream out = response.getOutputStream();
// 创建缓冲区
byte buffer[] = new byte[1024];
int len = 0;
// 循环将输入流中的内容读取到缓冲区当中
while ((len = in.read(buffer)) > 0) {
// 输出缓冲区的内容到浏览器,实现文件下载
out.write(buffer, 0, len);
}
// 关闭文件输入流
in.close();
// 关闭输出流
out.close();
} catch (Exception e) {
}
return null;
}
你说的弹出框乱码 具体指的 文件名乱码 还是下载的文件内容乱码 还是返回路径乱码