ajax下载文件

通过看了些相关知识

写了如下方法,该方法不支持低版本IE 使用需要注意。。。

	function downloadFile(fileUrl,filename) {
		// 路径
		   var url = "reportFile/downLoadFile.do?url=" + fileUrl;
		   var xhr = new XMLHttpRequest();
		   xhr.open('post', url, true);        // 也可以使用POST方式,根据接口
		   xhr.responseType = "blob";    // 返回类型blob
		   // 定义请求完成的处理函数,请求前也可以增加加载框/禁用下载按钮逻辑
		   xhr.onload = function (data) {
		       // 请求完成 15为后台错误返回值长度
		       if (this.status === 200 && data.loaded!=15) {
		           // 返回200
		           var blob = this.response;
		           var reader = new FileReader();
		           reader.readAsDataURL(blob);    // 转换为base64,可以直接放入a表情href
		           reader.onload = function (e) {
		               // 转换完成,创建一个a标签用于下载
		               var a = document.createElement('a');
		               a.download = filename;
		               a.href = e.target.result;
		               $("body").append(a);    // 修复firefox中无法触发click
		               a.click();
		               $(a).remove();
		           }
		       }else{
		    	   alert("文件下载失败!!")
		       }
		   };
		   // 发送ajax请求
		   xhr.send()
		}
	

阅读更多
想对作者说点什么?

博主推荐

换一批

没有更多推荐了,返回首页