Spring mvc 文件上传 下载
来源:互联网 发布:淘宝上不显示淘龄 编辑:程序博客网 时间:2024/06/05 22:45
本篇文章主要记录 上传下载 遇到的一些编码问题:自己的理解--->可能不准确
@RequestMapping(value="/upload",method=RequestMethod.POST) public String upload(HttpServletRequest request,@RequestParam("description") String description,@RequestParam("file") MultipartFile file) throws Exception{ System.out.println(description); // 如果文件不为空,写入上传路径if(!file.isEmpty()){// 上传文件路径String path = request.getSession().getServletContext().getRealPath( "/images/");// 上传文件名String filename = file.getOriginalFilename(); File filepath = new File(path,filename);// 判断路径是否存在,如果不存在就创建一个 if (!filepath.getParentFile().exists()) { filepath.getParentFile().mkdirs(); } // 将上传文件保存到一个目标文件当中 String adf = new SimpleDateFormat("yyyyMMddHHmmssSSS").format(new Date());file.transferTo(new File(path+File.separator+adf+ filename));return "success";}else{return "error";} }
下载:
<body> This is my JSP page. <br> <h3>文件下载</h3> <a href="download?filename=${requestScope.user.image.originalFilename}"> ${requestScope.user.image.originalFilename } </a> </body>
//文件下载 @RequestMapping(value="/download") public ResponseEntity<byte[]> downlaod( HttpServletRequest request, @RequestParam("filename") String filename, Model model )throws Exception{ String ss = new String(filename.getBytes("iso-8859-1"),"UTF-8"); System.out.println(ss); String path = request.getSession().getServletContext().getRealPath("/images"); File file = new File(path+File.separator+ss); HttpHeaders headers = new HttpHeaders(); //下载显示的文件名 ,乱码处理 String downloadFileName = new String(ss.getBytes("UTF-8"),"iso-8859-1"); //浏览器以attachment 方式打开 headers.setContentDispositionFormData("attachment", downloadFileName); headers.setContentType(MediaType.APPLICATION_OCTET_STREAM); return new ResponseEntity<byte[]>(FileUtils.readFileToByteArray(file),headers,HttpStatus.CREATED); }-------------------------------
在下载的时候是以超链接请求到 后台的,,也就是get请求,get请求的编码是
iso-8859-1:当文件的名字是中文的时候,传到后台会乱码,所以需要转码
String ss = new String(filename.getBytes("iso-8859-1"),"UTF-8");浏览器的下载方式是:APPLICATION_OCTET_STREAM
application_octet_stream:二进制流数据,也就相当于 byte[] (二进制)数组,
byte:字节,所以需要将utf-8 再转这iso-8859-1
String downloadFileName = new String(ss.getBytes("UTF-8"),"iso-8859-1");
阅读全文
0 0
- Spring MVC文件上传 下载
- Spring mvc 文件上传 下载
- spring mvc文件上传与下载
- Spring MVC 实现文件上传与下载
- Spring mvc 文件的上传与下载
- spring MVC文件的上传和下载
- spring MVC文件上传和下载
- Spring MVC之文件上传与下载
- Spring MVC 文件上传与下载
- Spring MVC 文件上传与下载
- Spring mvc文件上传与下载
- spring mvc的文件下载及上传
- spring mvc文件上传和下载
- spring mvc 文件上传
- spring MVC 文件上传
- Spring MVC文件上传
- Spring MVC文件上传
- spring mvc 文件上传
- 抽象类和接口的区别
- 网页定位导航特效制作
- 头插法和尾插法图文并茂
- LintCode 落单的数
- 如何写出简洁、优雅、可维护的组件。
- Spring mvc 文件上传 下载
- OS学习笔记
- 师兄的优秀毕设学习
- Oracle_sql 基础_查询语句
- seo优化第一天总结
- ArrayList
- 各国语言简写
- Yarn的JVM重用功能——uber
- 显著性检测(二)Spatio-temporal Saliency Detection Using Phase Spectrum of Quaternion Fourier Transform