码迷,mamicode.com
首页 > 其他好文 > 详细

文件下载工具

时间:2018-05-29 11:58:37      阅读:170      评论:0      收藏:0      [点我收藏+]

标签:gen   文件   file   etl   而不是   int   col   url   nta   

public class DownFileUtile {//str为文件的下载地址
    public static Logger logger = Logger.getLogger(DownFileUtile.class);
    public static void downLoad(String str, HttpServletRequest request, HttpServletResponse response){
        String extName = str.substring(str.lastIndexOf(".") + 1);
        String oldName = UUID.randomUUID().toString().replace("-","");
        String fileName =oldName+"."+extName;
        try {
            URL url = new URL(str);
            InputStream is = url.openStream();
            response.setContentType("application/doc");
            final String userAgent = request.getHeader("USER-AGENT");
            if(StringUtils.contains(userAgent, "MSIE")){//IE浏览器
                fileName = URLEncoder.encode(fileName,"UTF-8");
            }else if(StringUtils.contains(userAgent, "Mozilla")){//google,火狐浏览器
                fileName = new String(fileName.getBytes(), "ISO8859-1");
            }else{
                fileName = URLEncoder.encode(fileName,"UTF-8");//其他浏览器
            }
            response.addHeader("Content-Disposition", "attachment;filename=" +fileName);//这里设置一下让浏览器弹出下载提示框,而不是直接在浏览器中打开
            ServletOutputStream os = response.getOutputStream();
            byte[] car = new byte[2048];
            int L;
            while((L = is.read(car)) != -1){
                if (car.length!=0){
                    os.write(car, 0,L);
                }
            }
            if(os!=null){
                os.flush();
                os.close();
            }
        } catch (Exception e) {
            logger.info("下载文件失败:"+e.getMessage());
        }
    }
}

 

文件下载工具

标签:gen   文件   file   etl   而不是   int   col   url   nta   

原文地址:https://www.cnblogs.com/appc/p/9104155.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!