Download simultâneo de arquivos

Pessoal, consumo a API da vertsign para realizar o download de arquivos zipados.
Acontece que ao ter +1 arquivo, ela só baixa o último.
Alguém saberia o que modificar para fazer o download de todos os arquivos?

function getDownloadZIP() {
  let arrChave = returnChave() // ['123', '456']

  arrChave.forEach(chave => {
    let params = {
      "includeOriginal": "True",
      "includeManifest": "True",
      "zipped": "True",
    }

    $.ajax({
      method: "GET",
      url: `https://api-sbx.portaldeassinaturas.com.br/api/v2/document/package?key=${chave}&` + $.param(params),
      headers: {
        "token": "xxxxxxxxxxxxxxxxxxxxxxxxx" 
      },
      async: false,
      error: function (x, e) {
        console.log('error')
      },

      success: function (data) {
        console.log('sucess')

        let base64 = data.bytes
        let name = data.name
        let link = document.querySelector('#linkDownloadZIP')
        link.setAttribute('href', 'data:text/plain;base64,' + base64)
        link.setAttribute('download', name)
      }
    })
  })
}

Marcela, o trecho abaixo vai ficar com o conteudo do utltimo apenas:

let link = document.querySelector('#linkDownloadZIP')
link.setAttribute('href', 'data:text/plain;base64,' + base64)

Se quiser manter esse código, considere ter mais de um botão.

No seu lugar, eu colocaria o download para ser feito no click do botão, chamando uma função que faz os downloads.

Algo assim:

$('#linkDownloadZIP').click(function(e) {
    e.preventDefault();
    urls = getURLsDownload(); //busca a url ou conteudo
    urls.forEach(url => {
      window.open(url);
    }
});

Eu tentei dessa forma, mas acaba abrindo página em branco e não faz o download. Eu recebo base64 de um zip.

window.open('data:text/plain;base64,' + url);

Oi Rômulo, consegui da seguinte forma:

function getDownloadZIP() {
  $('#linkDownloadZIP').click(function (e) {
    e.preventDefault();
    urls = getURLsDownload(); //busca a url ou conteudo

    urls.forEach(url => {
      var link = document.createElement('a');
      link.href = 'data:text/plain;base64,' + url;
      link.download = 'test.zip'
      link.click();
    })
  });
}

Obrigada pela ajuda!

1 curtida

Este tópico foi fechado automaticamente 16 horas depois da úlima resposta. Novas respostas não são mais permitidas.