实例如下所示:
คอนโทรลเลอร์: @requestmapping (value = "/{loanid}/{atmttype}") โมฆะสาธารณะ doget (@PathVariable ("Loanid") สตริง Loanid,@pathVariable ("atmttype") atmttype, httpservletRequest hashmap <string, string> (); map.put ("Loanid", Loanid); แผนที่ <string, string> urlbyloanid = new hashmap <string, string> (); // แผนที่ <สตริง, สตริง> urlbyloanid = zcmQueryInfoservice.QueryUrlByloanid (แผนที่); ลอง {ถ้า (urlbyloanid! = null) {String wjurl = "http://10.0.15.11:8080/gateway//nfs/marvel-core-admin/2017/10/11/Compact_Seal_171011193712316161616 // สตริง wjurl = urlbyloanid.get ("url"); int i = wjurl.lastindexof ("/"); string filename = wjurl.substring (i+1); url url = url ใหม่ (wjurl); httpurlConnection conn = (httpurlconnection) url.openconnection (); // 设置超时间为 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 ("แอปพลิเคชัน/octet-stream; charset = iso8859-1"); bufferedOutputStream output = null; bufferedInputStream อินพุต = null; ลอง {output = ใหม่ bufferedOutputStream (response.getOutputStream ()); // 中文文件名必须转码为 iso8859-1, 否则为乱码สตริง filenamedown = สตริงใหม่ (ชื่อ filename.getBytes (), "iso8859-1"); // 作为附件下载 Response.Setheader ("เนื้อหา-การจัดสรร", "สิ่งที่แนบมา; filename =" + filenamedown); output.write (BS); Response.flushbuffer (); } catch (exception e) {log.error ("ดาวน์โหลดข้อผิดพลาดไฟล์บันทึก", e); } // 用户可能取消了下载ในที่สุด {ถ้า (อินพุต! = null) ลอง {input.close (); } catch (ioexception e) {e.printstacktrace (); } ถ้า (เอาต์พุต! = null) ลอง {output.close (); } catch (ioexception e) {e.printstacktrace (); }}}} catch (Exception E) {E.printStackTrace (); }}/ ** * 从输入流中获取字节数组 * @param inputstream * @return * @throws ioexception */ public Static byte [] readInputStream (inputStream inputStream) พ่น IOException {byte [] buffer = byte ใหม่ [1024]; int len = 0; ByTeArrayOutputStream BOS = New ByTeArrayOutputStream (); ในขณะที่ ((len = inputstream.read (บัฟเฟอร์))! = -1) {bos.write (บัฟเฟอร์, 0, len); } bos.close (); กลับ bos.tobytearray (); -以上这篇 java 通过 url 下载文件并输出的方法就是小编分享给大家的全部内容了, 希望能给大家一个参考, 也希望大家多多支持武林网。