Download Ajax response as zip file?

前端 未结 1 1557
情深已故
情深已故 2021-01-28 22:33

I am trying to download multiple images as a zip file. As I am using Azure blob, first I listed all blobs then compressed it using Archiver and used pipe function to send it to

1条回答
  •  逝去的感伤
    2021-01-28 23:15

    There is a lot that goes into using ajax to download a file, first you have to be able to access the data in binary(not text which is the default) by setting the responseType to blob. Then you have to use actually get a way to get the download dialog to show up, below you can see the anchor with download attribute technique.

    jQuery.ajax({
            url:'download/',
            type:'POST',
            data: JSON.stringify(data),  
            contentType: 'application/json', 
            xhrFields:{
                responseType: 'blob'
            },
            success: function(data){
                var anchor = document.getElementById('a');
                var url = window.URL || window.webkitURL;
                anchor.href = url.createObjectURL(data);
                anchor.download = 'archive.zip';
                document.body.append(anchor);
                anchor.click();
                setTimeout(function(){  
                    document.body.removeChild(anchor);
                    url.revokeObjectURL(anchor.href);
                }, 1};
            },
            error:function(){
    
            }
        });
    

    requires jQuery3+

    0 讨论(0)
提交回复
热议问题