zoukankan      html  css  js  c++  java
  • 文件下载—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();  
            }

  • 相关阅读:
    互操作
    Rx基础
    数据流块基础
    C# 一个帮您理解回调函数的例子(新手必看)
    C# 多线程之通过Timer开启线程的例子
    C# 利用委托事件进行窗体间的传值(新手必看)
    C#XML文件操作随笔
    C# 委托学习笔记
    c# 关于抓取网页源码后中文显示乱码的原因分析和解决方法
    c# 异步编程 使用回调函数例子
  • 原文地址:https://www.cnblogs.com/domi22/p/8059759.html
Copyright © 2011-2022 走看看