• 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;
        }
  • 相关阅读:
    『NiFi 节点本地流与集群流不一致导致集群加入失败』问题解决
    『NiFi 学习之路』简介
    『NiFi 学习之路』自定义 —— 组件的自定义及使用
    『NiFi 学习之路』使用 —— 主要组件的使用
    『NiFi 学习之路』把握 —— 架构及主要部件
    TabLayout与ViewPager同步后Tab的标题不显示
    Word 为标题设置段前段后间距设置与异常
    Word 中将正文中的参考文件标号链接到参考文献具体条目
    Linux字体美化实战(Fontconfig配置)(转)
    Linux字体美化实战(Fontconfig配置)(转)
  • 原文地址:https://www.cnblogs.com/bulrush/p/8068252.html
Copyright © 2020-2023  润新知