• 文件下载—SSM框架文件下载


    1、准备上传下载的api组件

    <dependency>
            <groupId>commons-io</groupId>
            <artifactId>commons-io</artifactId>
            <version>2.4</version>
    </dependency> 
    <dependency>
            <groupId>commons-fileupload</groupId>
            <artifactId>commons-fileupload</artifactId>
            <version>1.3.1</version>
        </dependency>
     
    2、编写前台上传表单
    <body>
    请点击下载:<a href="user/download?filename=moni.jpg">moni.jpg</a>
    </body>
     
    3、编写controller层(在conreoller层拼接附件名字和所在文件夹位置(path),创建输出流直接写入response中
      /**
             * 文件下载
             * @throws IOException 
             */
            @RequestMapping(value="/download",method=RequestMethod.GET)
            public void download(@RequestParam(value="filename")String filename,
                    HttpServletRequest request,
                    HttpServletResponse response) throws IOException {
                //模拟文件,myfile.txt为需要下载的文件  
                String path = request.getSession().getServletContext().getRealPath("statics\upload")+"\"+filename;  
                //获取输入流  
                InputStream bis = new BufferedInputStream(new FileInputStream(new File(path)));
                //转码,免得文件名中文乱码  
                filename = URLEncoder.encode(filename,"UTF-8");  
                //设置文件下载头  
                response.addHeader("Content-Disposition", "attachment;filename=" + filename);    
                //1.设置文件ContentType类型,这样设置,会自动判断下载文件类型    
                response.setContentType("multipart/form-data");   
                BufferedOutputStream out = new BufferedOutputStream(response.getOutputStream());  
                int len = 0;  
                while((len = bis.read()) != -1){  
                    out.write(len);  
                    out.flush();  
                }  
                out.close();  
            }

  • 相关阅读:
    LeetCode 226. Invert Binary Tree
    LeetCode 221. Maximal Square
    LeetCode 217. Contains Duplicate
    LeetCode 206. Reverse Linked List
    LeetCode 213. House Robber II
    LeetCode 198. House Robber
    LeetCode 188. Best Time to Buy and Sell Stock IV (stock problem)
    LeetCode 171. Excel Sheet Column Number
    LeetCode 169. Majority Element
    运维工程师常见面试题
  • 原文地址:https://www.cnblogs.com/domi22/p/8059759.html
Copyright © 2020-2023  润新知