java通过url利发国际手机客户端文件并输出的方法

转载  2018-01-10   作者:心境666   我要评论
下面小编就为大家分享一篇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利发国际手机客户端文件并输出的方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持脚本之家。

最新评论

利发国际手机客户端