JavaScript~檔案下載的幾種方式

solution發表於2021-09-09

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部落格作者愛笑嘚蛋蛋的原創作品,如需轉載,請註明出處,否則將追究法律責任


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/2459/viewspace-2819058/,如需轉載,請註明出處,否則將追究法律責任。

相關文章