zoukankan      html  css  js  c++  java
  • springmvc文件的上传与下载

    1:先在springmvc.xml配置文件中加上MultipartResolver接口的实现类CommonsMultipartResolver的bean

    1 <!-- 配置文件上传的MultipartResolver接口 -->
    2     <bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver">
    3         <property name="defaultEncoding" value="UTF-8"/>
    4         <property name="maxUploadSize" value="1024000"/>
    5     </bean>

    2:在Handler中写代码

      1):利用file.transferTo()的方式进行上传。

     1 @RequestMapping("/testFileUpload")
     2     public String testFileUpload(@RequestParam("desc") String desc,@RequestParam("file") MultipartFile file) throws IOException{
     3         System.out.println("desc :"+ desc);
     4         System.out.println("file :"+ file.getOriginalFilename());
     5         System.out.println("InputStream :"+file.getInputStream());
     6         //得到文件上传的路径,就是文件上传到哪个地方
     7         String path="E:/springupload/" +file.getOriginalFilename();
     8         System.out.println(path);
     9         //上传
    10         file.transferTo(new File(path));
    11         return "success";
    12     }

    利用@RequestParam把页面上的值赋值给参数desc和file。然后利用file的getOriginalFilename()方法得到上传文件的名字。 利用file的transferTo()方法上传文件

      2):利用流的方式上传

     1 @RequestMapping("/testFileUpload")
     2     public String testFileUpload(@RequestParam("desc") String desc,@RequestParam("file") MultipartFile file) throws IOException{
     3         System.out.println("desc :"+ desc);
     4         System.out.println("file :"+ file.getOriginalFilename());
     5         System.out.println("InputStream :"+file.getInputStream());
     6         
     7         //上传
     8         //获取输出流。把要上传的文件路径和文件名放到输出流中
     9         OutputStream os=new FileOutputStream("E:/springupload/"+file.getOriginalFilename());
    10         InputStream is=file.getInputStream();
    11         int temp;
    12         //is.read()读取上传的文件。=(-1):读到最后一个,然后写入到输出流中
    13         while((temp=is.read())!=(-1)){
    14             os.write(temp);
    15         }
    16         os.flush();
    17         os.close();
    18         is.close();
    19         
    20         return "success";
    21     }

    3:文件的下载

    @RequestMapping("/testDownload")
        public ResponseEntity<byte[] > testDownload(HttpSession session) throws IOException{
            //得到文件的路径
            ServletContext servletContext=session.getServletContext();
            InputStream in=servletContext.getResourceAsStream("/WEB-INF/files/abc.txt");
            System.out.println(in);
            //创建一个与abc.txt文件一样大的byte[]数组。
            byte[] body=new byte[in.available()];
            in.read(body);
            HttpHeaders headers = new HttpHeaders();
            headers.add("Content-Disposition", "attachment;filename=abc.txt");
            HttpStatus statusCode = HttpStatus.OK;
            /*使用 HttpMessageConverter<T> 将请求信息转化并绑定到处理方法的入 •
            参中或将响应结果转为对应类型的响应信息,Spring 提供了两种途径:
            使用 @RequestBody / @ResponseBody – 对处理方法进行标注
            使用 HttpEntity<T> / ResponseEntity<T> 作为处理方法的入参或返回– 值*/
            ResponseEntity<byte[]> response=new ResponseEntity<byte[]>(body, headers, statusCode);
            return response;
        }
  • 相关阅读:
    1. 单个文件下载
    16. js方法传多个参数的实例
    15. combobox、combotree获取显示值和value值方式
    38. 查看oracle表空间存放的位置(查看所有的数据库文件的存放位置)
    Vuejs 高仿饿了么外卖APP 百度云视频教程下载
    mysql 5.7 百度云网盘下载
    mysql 5.1 下载地址 百度云网盘下载
    Zookeeper学习笔记-概念介绍
    JavaScript工程师都应懂的33个概念
    IIS部署asp.net MVC 出现错误 403.14-Forbidden解决办法
  • 原文地址:https://www.cnblogs.com/bulrush/p/8068252.html
Copyright © 2011-2022 走看看