用了一下午时间,做了个文件下载,
在网上搜索后台下载代码:
1 public static ResponseEntity<byte[]> download(String path) { 2 File file = new File(path); 3 try { 4 HttpHeaders headers = new HttpHeaders(); 5 String fileName = new String(file.getName().getBytes("UTF-8"), "iso-8859-1"); 6 headers.setContentDispositionFormData("attachment", fileName); 7 headers.setContentType(MediaType.APPLICATION_OCTET_STREAM); 8 System.out.println(new ResponseEntity<byte[]>(FileUtils.readFileToByteArray(file), headers, HttpStatus.OK)); 9 return new ResponseEntity<byte[]>(FileUtils.readFileToByteArray(file), headers, HttpStatus.OK); 10 } catch (IOException e) { 11 System.out.println(e.getMessage()); 12 } 13 return null; 14 }
使用后,下载下来的所有文件都有问题,,不死心的我,继续搜索,,大都是上面的代码,就在我要失去信心的时候,,实然发现,有一篇文章: Spring MVC 文件下载最佳实践
原来,还要在xml文件里面设置
<bean class="org.springframework.http.converter.StringHttpMessageConverter"> <constructor-arg value="UTF-8" /> </bean> <!-- 将Jackson2HttpMessageConverter的默认格式化输出为false --> <!-- 加入这一句 --> <bean class="org.springframework.http.converter.ByteArrayHttpMessageConverter"/> <!-- 加入这一句 --> <bean class="org.springframework.http.converter.json.MappingJackson2HttpMessageConverter">
,到此,问题解决,,浪费了一下午的时间,却是别人早就解决的问题,搜索的内容,多数都一样,一篇解决不了的问题,,7,8篇也解决不了
在此,希望,不要复制粘贴,经过实践后,再上传代码。