//注意:使用GET请求,POST请求测试未成功
@RequestMapping(method = RequestMethod.GET, value = "downloadFromUrl.htm") @ResponseBody public void downloadFromUrl(HttpServletRequest request,HttpServletResponse response) { String url1 = request.getParameter("url"); String name = request.getParameter("name"); ServletOutputStream out = null; try {// 下载网络文件 URL url = new URL(url1); HttpURLConnection conn = (HttpURLConnection) url.openConnection(); DataInputStream input = new DataInputStream(conn.getInputStream()); //1.设置文件ContentType类型,这样设置,会自动判断下载文件类型 response.setContentType("application/octet-stream"); //2.设置文件头:最后一个参数是设置下载文件名(假如我们叫a.pdf) response.setHeader("Content-Disposition", "attachment;fileName="+name); //3.通过response获取ServletOutputStream对象(out) out = response.getOutputStream(); int b = 0; byte[] buffer = new byte[4096]; while ((b=input.read(buffer, 0, 1024)) >=0) { //4.写到输出流(out)中 out.write(buffer, 0, b); } input.close(); out.flush(); } catch(Exception e) { LOG.debug(e); } finally { //关闭流,不可少 }}