实例如下所示 :
Контроллер : @RequestMapping (value = "/{LoanID}/{atmttype}") public void Doget (@pathvariable ("LoanId") String LoanId,@pathvariable ("atmttype") String atmttype, httpserverquest req, httpservess response) {string string newserquest newservessonsess) HashMap <String, String> (); map.put ("LoanD", LoadeID); Map <string, string> urlbyloanid = new hashmap <string, string> (); // map <string, string> urlbyloanid = zcmqueryinfoservice.queryurlbyloanid (map); попробуйте {if (urlbyloanid! = null) {string wjurl = "http://10.0.15.11:8080/gateway//nfs/marvel-core-admin/2017/10/11/compact_seal_171011119371231615_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.openconcenection (); // 设置超时间为 3 秒 conn.setConnecttimeout (3*1000); // 防止屏蔽程序抓取而返回 403 错误 conn.setRequestProperty («пользователь-агент», "Mozilla/4.0 (совместимо; msie 5.0; Windows nt; digext)"); // 得到输入流 inputStream inputStream = conn.getInputStream (); // 获取自己数组 byte [] bs = readInputStream (inputStream); response.setContentType ("Приложение/октет-рулет; charset = iso8859-1"); BufferedOutputStream output = null; BufferedInputStream input = null; try {output = new BufferedOutputStream (response.getOutputStream ()); // 中文文件名必须转码为 iso8859-1, 否则为乱码 string filedamedown = new String (filename.getbytes (), "iso8859-1"); // 作为附件下载 response.setheader ("Контент-дискуссия", "Attachment; filename =" + filedamedown); output.write (bs); response.flushbuffer (); } catch (Exception e) {log.error ("ошибка файла журнала загрузки", e); } // 用户可能取消了下载 наконец {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 * @throhs 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 (буфер, 0, len); } bos.close (); return bos.tobytearray (); }以上这篇 java 通过 url 下载文件并输出的方法就是小编分享给大家的全部内容了 希望能给大家一个参考 希望能给大家一个参考 也希望大家多多支持武林网。 也希望大家多多支持武林网。