手记

JavaScript~文件下载的几种方式

1.通过a标签的方式来下载

<a href='' target='_blank'></a>

2.通过提交form表单的方式

var $form = $('<form action="'+url+'" method="post" target="rfFrame"></form>');

angular.forEach(d,function(v,k){

    v = JSON.stringify(v);

    var $input = $('<input type="hidden" name="'+k+'"/>');

    $input.attr('value',v);

    $form.append($input);

});

$element.append($form);

$form.submit();

$form.remove();

3.通过http的请求拿到文件流的方式

$http({

    url : $scope.url,

    method : 'post',

    data : $scope.form.formdata,

    responseType : 'arraybuffer',

}).then(function(d){

    var data = d.data;

    var blob = new Blob([data], {type: "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"});//xlsx

//var blob = new Blob([data], {type: "application/vnd.ms-excel"});//xls

    var objectUrl = URL.createObjectURL(blob);

    var aForExcel = $("<a><span class='forExcel'>下载excel</span></a>").attr("href",objectUrl);

    $("body").append(aForExcel);

    $(".forExcel").click();

    aForExcel.remove();

});

©著作权归作者所有:来自51CTO博客作者爱笑嘚蛋蛋的原创作品,如需转载,请注明出处,否则将追究法律责任


0人推荐
随时随地看视频
慕课网APP