文件下载用ajax请求后没响应

文件下载用ajax请求后没响应

 

// $.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;
点下载退出登录,记得带header 属性
var eleForm = $("<form method='get'></form>");
    eleForm.attr("action",basePath + "restful/downloadFile.do");
    eleForm.append($("<input />").attr("type", "hidden").attr("name", "fileId").attr("value", fileId));
    eleForm.append($("<input />").attr("type", "hidden").attr("name", "AiSeeCloudToken").attr("value", sessionStorage["AiSeeCloudToken"]));
    $(document.body).append(eleForm);
    eleForm.submit();
  
后端:
@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");
	        response.setContentType("application/octet-stream");
	        //3.设置content-disposition响应头控制浏览器以下载的形式打开文件
	        response.addHeader("Content-Disposition","attachment;filename=" + new String(fileName.getBytes("UTF-8"),"ISO8859-1"));
			OutputStream os = null;
	        BufferedInputStream bis = null;
			try {
	            os = response.getOutputStream();
	            os.write(json.getBytes("bytes"));
	            os.flush();
	        } catch (IOException e) {
	            e.printStackTrace();
	        } finally {
	            try {
	            	if(bis != null)
	            		bis.close();
	            } catch (IOException e) {
	                e.printStackTrace();
	            }
	            try {
	            	if (os != null)
	            		os.close();
	            } catch (IOException e) {
	                e.printStackTrace();
	            }
	        }
		}
	}
 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值