使用java怎么根据url下载文件?针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。
在桑日等地区,都构建了全面的区域性战略布局,加强发展的系统性、市场前瞻性、产品创新能力,以专注、极致的服务理念,为客户提供成都网站设计、成都网站建设 网站设计制作按需开发网站,公司网站建设,企业网站建设,成都品牌网站建设,网络营销推广,成都外贸网站制作,桑日网站建设费用合理。
实例如下所示:
controller: @RequestMapping(value = "/{loanid}/{atmtType}") public void doGet(@PathVariable("loanid") String loanid,@PathVariable("atmtType") String atmtType, HttpServletRequest req,HttpServletResponse response) { Mapmap = new HashMap (); map.put("loanid", loanid); Map urlByLoanid= new HashMap (); // Map 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下载文件问题的解答就分享到这里了,希望以上内容可以对大家有一定的帮助,如果你还有很多疑惑没有解开,可以关注创新互联行业资讯频道了解更多相关知识。