java简单的文件下载

   很多时候业务中会用到文件下载什么的, 有些方法可能需要一些前端的文件下载组件什么的, 相对比较复杂,在这里只讲一种非常简单的文件下载,   但是这个方法有点小要求,  就是要下载的文件必须已经存在  并且存在服务器本地.

 

    /**
     * 文件下载,  
     * 注:  只需要改文件名和文件路径  其他的完全复制粘贴即可使用哦. 
     * @param req
     * @param res
     * @throws Exception
     */
    public void downLoad(HttpServletRequest req,HttpServletResponse res) throws Exception{
        
        //一般此方法和生成文件到本地的方法是配套的,一起用,  一个生成, 一个下载
        //生成并下载文件的流程, 就是先生成文件到服务器本地,然后再将服务器下载到 客户所在地, 用的是浏览器的默认下载位置.
        
        String filename = "文件名.xls";//注意 : 这里是全文件名要加上文件名后缀, 不然会是无法识别的文件哦,
        String filepath = "D:/wrwExcel";//设置文件所在的路径
       
        req.setCharacterEncoding("UTF-8");//这一句是为了防止中文乱码   ,需要抛出异常 ,随便抛个啦
        //第一步:设置响应类型
        res.setContentType("application/force-download");//应用程序强制下载
       
        InputStream in = new FileInputStream(filepath+filename);//通过路径读取文件
        //解决下载文件时 文件名中文乱码
        filename = new String(filename.getBytes("UTF-8"), "ISO8859-1");  
        res.setHeader("Content-Disposition", "attachment;filename="+filename);   
        res.setContentLength(in.available());
        
        //第三步:老套路,开始copy
        OutputStream out = res.getOutputStream();
        byte[] b = new byte[1024];
        int len = 0;
        while((len = in.read(b))!=-1){
          out.write(b, 0, len);
        }
        out.flush();
        out.close();
        in.close();
        
    }

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章