温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

使用java怎么根据url下载文件

发布时间:2021-03-09 17:36:57 来源:亿速云 阅读:532 作者:Leah 栏目:编程语言

使用java怎么根据url下载文件?针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。

实例如下所示:

controller: @RequestMapping(value = "/{loanid}/{atmtType}")  public void doGet(@PathVariable("loanid") String loanid,@PathVariable("atmtType") String atmtType,    HttpServletRequest req,HttpServletResponse response) {   Map<String,String> map = new HashMap<String,String>();   map.put("loanid", loanid);   Map<String, String> urlByLoanid= new HashMap<String,String>();  // Map<String, String> urlByLoanid = zcmQueryInfoService.queryUrlByLoanid(map);   try {    if(urlByLoanid!=null){     String wjurl="http://10.0.15.11:8080/gateway//nfs/marvel-core-admin/2017/10/11/compact_seal_17101119371231615_7.pdf";     //String wjurl = urlByLoanid.get("url");     int i = wjurl.lastIndexOf("/");     String fileName = wjurl.substring(i+1);          URL url = new URL(wjurl);      HttpURLConnection conn = (HttpURLConnection)url.openConnection();      //设置超时间为3秒      conn.setConnectTimeout(3*1000);      //防止屏蔽程序抓取而返回403错误      conn.setRequestProperty("User-Agent", "Mozilla/4.0 (compatible; MSIE 5.0; Windows NT; DigExt)");      //得到输入流      InputStream inputStream = conn.getInputStream();      //获取自己数组      byte[] bs = readInputStream(inputStream);      response.setContentType("application/octet-stream;charset=ISO8859-1");     BufferedOutputStream output = null;     BufferedInputStream input = null;      try {       output = new BufferedOutputStream(response.getOutputStream());       // 中文文件名必须转码为 ISO8859-1,否则为乱码       String fileNameDown = new String(fileName.getBytes(), "ISO8859-1");       // 作为附件下载       response.setHeader("Content-Disposition", "attachment;filename=" + fileNameDown);          output.write(bs);       response.flushBuffer();      } catch (Exception e) {       log.error("Download log file error", e);      } // 用户可能取消了下载      finally {       if (input != null)        try {         input.close();        } catch (IOException e) {         e.printStackTrace();        }       if (output != null)        try {         output.close();        } catch (IOException e) {         e.printStackTrace();        }      }    }   } catch (Exception e) {    e.printStackTrace();   }  } /**    * 从输入流中获取字节数组    * @param inputStream    * @return    * @throws IOException    */   public static byte[] readInputStream(InputStream inputStream) throws IOException {    byte[] buffer = new byte[1024];    int len = 0;    ByteArrayOutputStream bos = new ByteArrayOutputStream();    while((len = inputStream.read(buffer)) != -1) {     bos.write(buffer, 0, len);    }    bos.close();    return bos.toByteArray();   }

关于使用java怎么根据url下载文件问题的解答就分享到这里了,希望以上内容可以对大家有一定的帮助,如果你还有很多疑惑没有解开,可以关注亿速云行业资讯频道了解更多相关知识。

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI