2 chaixw007 chaixw007 于 2017.09.04 10:25 提问

springmvc 下载文件 弹出框乱码什么原因啊

图片说明哪些原因啊 ,
烦死了

3个回答

qq_38005982
qq_38005982   2017.09.04 10:26

你的编码格式改了么?可能是因为编码格式的原因

chaixw007
chaixw007 改了呀
11 个月之前 回复
chaixw007
chaixw007   2017.09.04 10:30

@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;

}
qq_38005982
qq_38005982 。。。。。我除了看懂了第一行剩下的,都蒙圈状态,不太会看这个,你看一下JSP的编码格式,如果也是UTF-8,那我就不会了,你可以等等大神,不过这代码我可以留着回头自己玩玩
11 个月之前 回复
q690080900
q690080900   2017.09.04 10:54

你说的弹出框乱码 具体指的 文件名乱码 还是下载的文件内容乱码 还是返回路径乱码

q690080900
q690080900 还有 你那个filename 应该这么写 fileName = new String(fileName.getBytes("UTF-8"), "ISO-8859-1");
11 个月之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!
其他相关推荐
springmvc下载文件弹出框
如果上传的文件放在tomcat里面通过访问路径直接可以下载,如果不是就得用流的方式返回,浏览器才会弹出下载框 项目中使用的框架是SpringMVC+MyBatis 在项目中需要做一个功能。就是一个报表。然后根据报表生成一个csv格式的文件。然后进行压缩。并提供下载功能。 该“Excel下载” 功能的业务逻辑是当点击该按钮。则需要把报表页面上显示的数据进行生成一个csv 格式的
Spring MVC 文件下载过程中 出现下载文件乱码
在使用一个框架时,程序员分为三种级别  1.看demo开发  2.看文档开发  3.看源码开发  明显1不如2,2不如3  但是考虑时间成本3不如2,2不如1  我的原则是  有好的demo不看文档,有好的文档不看源码  对于文件下载,再简单不过了,但我比较傻,不会自己写  于是在google搜索"Spring mvc 3 download",demo版本都差不多 
SpringMVC文件下载中文乱码
java文件@RequestMapping("/download") public ResponseEntity<byte[]> dowload() throws IOException{ String path="D:/沈雪冰.png"; File file=new File(path); String fileName=new String(file.getName().
Spring MVC文件下载及中文文件名乱码解决
原文地址:http://www.jianshu.com/p/58e605d881e3 内容参考 Paul Deck 著的《Spring MVC学习指南1 2版》 将文件这样的资源发送到浏览器,需要在controller中完成以下工作: 在请求的处理方法中使用void返回类型,并在方法中添加HttpServletResponse设置Content-Type, Content-T
springmvc中上传下载解决乱码的问题
springMVC上传下载乱码
在ie浏览器下载文件乱码解决
String userAgent = requst.getHeader("user-agent").toLowerCase(); if (userAgent.contains("msie") || userAgent.contains("like gecko") ) { // ie edge 浏览器 fileName = URLEncoder.encode(fileNa
下载文件时出现保存对话框乱码
原文网址:http://88688lin.blog.163.com/blog/static/11024818720078501010312/下载文件时出现保存对话框乱码<br />java技术文章2007-09-05 00:10:10阅读33评论0  字号:大中小 订阅JAVA /SoBerLeVi 发表于2007-03-22, 09:13首先把我写的文件下载的jsp代码贴出来<br /><%@page language="java" contentType="application/x-msdownloa
spring mvc 下载文件 IE浏览器文件名是乱码
页面下载文件时,内容都是中文,只有文件名是乱码,在谷歌等浏览器下是可以的,查了下资料是浏览器兼容性问题 写一个转换 /** * * @Title: processFileName * * @Description: ie,chrom,firfox下处理文件名显示乱码 */ public static String
关于spring mvc web工程上传下载中文文件出现乱码的问题
*****为服务器的编码方式 1.MultipartFile上传文件        目的路径需要按照服务器的地址进行编码:              filename = new String( filename .getBytes("utf-8") , "*****");             FileUtils.copyInputStreamToFile(myfile.getIn
springmvc的乱码问题及文件上传下载
1. 解决乱码问题1.配置tomcat为UTF-8 (URIEncoing=”UTF-8”) 2.配置过滤器(配置characterEncodingFilter类中的encoding(设置request),forceEncoding(设置response)) encodingFilter org.springframework.web.filter.CharacterEncoding