Download file after ajax request did not respond
// $.ajax({ // url:, // type:'POST', // dataType:'json',//json 返回值类型 // data:{ // fileId:fileId // }, // success:function(data){ // console.log("downFile-------"); // MaskUtil.unmask(); // }, // error:function () { // MaskUtil.unmask(); // alert("下载异常!", "", null, {type: 'warning'}); // } // }); 改用 window.location.href=url 即可 window.location.href=basePath+"restful/downloadFile.do?fileId="+fileId;rear end:
@RequestMapping(value = "/downloadFile") public void downloadFile(String fileId,HttpServletRequest request,HttpServletResponse response) throws IOException { // String fileId = request.getParameter("fileId") == null ? "" : request.getParameter("fileId"); logger.info("downloadFile id :" + fileId); Map<String,Object> params = Maps.newConcurrentMap(); params.put("id", GlobalVariable.MONGO_KEY_PREFIX + fileId); JSONObject json = fileUpDownload.fileDownloadFromMongo(propertiesUtil.getUploadUrl(), propertiesUtil.getCollectionName(), params); JSONObject reJson = new JSONObject(); reJson.put("success", false); if(json.getBooleanValue("success")) { String fileName = json.getString("filename"); response.setCharacterEncoding ( "UTF-. 8");= null) bis.close(); the response.setContentType ( "file application / OCTET-Stream"); // set. 3 in response to content-disposition header control the browser to download the file open form. Response.AddHeader ( "the Content-Disposition", "Attachment; filename =" + new new String (fileName.getBytes ( "UTF-. 8"), "ISO8859-1")); the OutputStream OS = null; BufferedInputStream BIS = null; the try { OS = response.getOutputStream (); os.write (json.getBytes ( " bytes ")); os.flush (); } the catch (IOException E) { e.printStackTrace (); } {the finally the try { ! IF (BIS = null) } the catch (IOException E) { e.printStackTrace(); } try { if (os != null) os.close(); } catch (IOException e) { e.printStackTrace(); } } } }