前端代码:
<form id="downloadForm" action="#" method="get"> <input type="hidden" id="fileId" name="fileId"> <input type="hidden" id="filename" name="filename"> </form>
JS:
var filename = encodeURI(fksm + ".xls") $("#downloadForm #fileId").val(fileId); $("#downloadForm #filename").val(filename); $('#downloadForm').attr('action', '${pageContext.request.contextPath}/cs/downPaymentFile.do?fileId=' + fileId + '&filename=' + filename); $('#downloadForm').submit();
后台代码:
/** * 下载付款附件 * @param request * @param response */ @RequestMapping(value = "/downPaymentFile.do", method = RequestMethod.GET) public void downPicture(HttpServletRequest request, HttpServletResponse response) throws Exception{ InputStream in = null; String fileId = request.getParameter("fileId"); String filename = request.getParameter("filename"); filename = new String(filename.getBytes("GB2312"),"iso-8859-1"); try { String messageRes = ImageSystemUtils.fileView(fileId); JSONObject msgGetPictures = JSONObject.parseObject(messageRes); String statusGetPictures = msgGetPictures.getString("status"); //若返回成功 if (("200").equals(statusGetPictures)) { //获取返回的data字段值 String data = msgGetPictures.getString("data"); JSONObject jsonObject = JSONObject.parseObject(data); String url = jsonObject.getString("filePath").replaceAll("\\", "/"); URL httpUrl = new URL(url); HttpURLConnection conn = (HttpURLConnection) httpUrl.openConnection(); conn.setRequestMethod("GET"); conn.setDoInput(true); conn.setDoOutput(true); conn.setUseCaches(false); conn.connect(); in = conn.getInputStream(); byte[] bs = new byte[1024 * 10]; int len = 0; response.reset(); response.setHeader("Pragma", "no-cache"); response.setHeader("Cache-Control", "no-cache"); response.setHeader("Content-Type", "application/octet-stream"); response.setHeader("Content-Disposition", "attachment;filename=" + filename); ServletOutputStream out = response.getOutputStream(); while ((len = in.read(bs)) != -1) { out.write(bs, 0, len); } } } catch (Exception e) { throw new RuntimeException("下载失败"); } finally { try { in.close(); } catch (Exception e) { } } }