1. 程式人生 > >JavaScript~檔案下載的幾種方式

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();
});