JQuery实现⽂件下载的常⽤⽅法分析
本⽂实例讲述了JQuery 实现⽂件下载的常⽤⽅法。分享给⼤家供⼤家参考,具体如下:
GET⽅式
window.location.href = url;
POST⽅式
var url = "下载接⼝地址";
// 构造隐藏的form表单
var $form = $("<form id='download' class='hidden' method='post'></form>");
$form.attr("url",url);
$(body).append($form);
// 添加提交参数
var $input1 = $("<input name='param1' type='text'></input>");
$input1.attr("value","参数值1");
$("#download").append($input1);
var $input2 = $("<input name='param2' type='text'></input>");
$input1.attr("value","参数值2");
$("#download").append($input2);
// 提交表单
$form.submit();
ajax为什么不能下载⽂件
ajax⽀持的服务器返回数据类型有:xml、json、script、html,其他类型(例如⼆进制流)将被作为String返回,⽆法触发浏览器的下载处理机制和程序。
/
crayon怎么读英语声音/ ajax将返回数据转换为string,再利⽤该string创建Blob对象,下载的⽂件⽆法正确打开,数据可能已经被破坏
var blob = new Blob([data]);
//对于Blob对象,我们可以创建出⼀个URL来访问它。使⽤URL对象的createObjectURL⽅法。
var a = ateElement('a');
a.download = 'data.doc';
a.href=ateObjectURL(blob);
a.click()
HTML5 Blob对象
⼀直以来,JS都没有⽐较好的可以直接处理⼆进制的⽅法。⽽Blob的存在,允许我们可以通过JS直接操作⼆进制数据。Blob 对象可以看做是存放⼆进制数据的容器。
创建Blob对象
var blob = new Blob(dataArr:Array<any>, opt:{type:string,endings:string});
dataArr:数组,包含了要添加到Blob对象中的数据。数据可以是任意多个ArrayBuffer,ArrayBufferView, Blob,或者DOMString对象。
opt:对象,包含两个属性
type:⽤于设置Blob对象的属性(如:MIME类型)
select是什么意思的endings :(已废弃),设置BlobBuilder.append() ⽅法的endings参数,取值"transparent"或"native"
// 例如创建⼀个装填DOMString对象的Blob对象
var data='<b >Blob</b>';
var blob=new Blob([data],{"type":"text/html"});
c语言100题及答案console.log(blob);
xmlhttprequest 2 + Blob 实现⽂件下载
xmlhttprequest 2 标准⽀持流⽂件,使⽤sponse作为返回(不是responseText)
var url = "";
var xhr = new XMLHttpRequest();
jquery下载文件请求xhr.open('GET', url, true);//get请求,请求地址,是否异步
if (this.status === 200) {
var blob = sponse;// 获取返回值
var a = ateElement('a');
a.download = 'data.doc';
a.href=ateObjectURL(blob);
a.click();
}
};
// 发送ajax请求
xhr.send();
更多关于jQuery相关内容感兴趣的读者可查看本站专题:《》、《》、《》、《》及《》希望本⽂所述对⼤家jQuery程序设计有所帮助。
>thumbs
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论