проблема с созданием zip живого изображения sr c с библиотекой JSZIP - PullRequest
1 голос
/ 13 марта 2020

Я создаю zip-файл, используя библиотеку JSZIP. Для этого я написал код, показанный ниже, в котором дано изображение src. На моем сайте это мой путь к живому сайту. Этот zip-файл создан правильно.

Проблема в том, что он создает структуру папок, например:

zipFilename->https:->website.com->wp-content->themes->theamename->templates->images->imageName

Мне нужна структура папок, подобная этой:

zipFilename->imageName or zipFilename->images->imageName

Может ли кто-нибудь помочь мне с это

function downloadAll() {
  var urls = [];
  $(".image").each(function(index) {
    urls.push($(this).attr('src'));
  });

  var zip = new JSZip();
  var count = 0;
  var zipFilename = "zipFilename.zip";
  urls.forEach(function(url) {
    var filename = "filename";
    JSZipUtils.getBinaryContent(url, function(err, data) {
      if (err) {
        throw err; // or handle the error
      }
      zip.file(url, data, {
        binary: true
      });
      count++;
      if (count == urls.length) {
        zip.generateAsync({
            type: "blob"
          })
          .then(function(blob) {
            saveAs(blob, zipFilename);
          });
      }
    });
  });
}
image

1 Ответ

0 голосов
/ 13 марта 2020

Я использую

urls.forEach(function (url, i) {
            var filename = urls[i];
            filename = filename.replace(/[\/\*\|\:\<\>\?\"\\]/gi, '').replace("zipFilenamehttpswebsite.comwp-contentthemestheamenametemplatesimages","");
            // loading a file and add it in a zip file
            JSZipUtils.getBinaryContent(url, function (err, data) {
              if (err) {
                throw err; // or handle the error
              }
              zip.file(filename, data, { binary: true });
              count++;
              if (count == urls.length) {
                zip.generateAsync({ type: 'blob' }).then(function (content) {
                  saveAs(content, zipFilename);
                });
              }
            });
          });

и работает нормально

...