Nano Hash - криптовалюты, майнинг, программирование

Имя ZIP-файла, созданного JSZip

Я использую JSZip и создаю файл .zip с несколькими файлами .xml внутри него, как показано ниже:

// get each xml in string format and add it to zip object
let zip = new JSZip();
for(let i = 0; i < containers.length; i++){
    let xml = getXML(i);
    zip.file("file"+i+".xml", xml);
}

// download the .zip file
zip.generateAsync({
    type: "base64"
}).then(function(content) {
    window.location.href = "data:application/zip;base64," + content;
});

Файл .zip создается и загружается отлично, но имя файла по умолчанию — «файл загрузки». Что я хочу сделать, так это дать имя этому файлу по желанию (например, allXMLs.zip).

Я просмотрел документацию JSZip, но не нашел ничего действительно поучительного, любая помощь будет принята с благодарностью.

18.06.2019

  • На странице, на которую вы ссылаетесь, функция примера saveAs имеет второй параметр, который является именем файла. Поэтому я думаю, что вам нужно записать файл на диск, чтобы назвать его. 18.06.2019
  • Привет, Таннер, функция saveAs принадлежит FileSaver.js, которую я в настоящее время не включил в свой проект, интересно, есть ли способ без нее 18.06.2019
  • FileSaver.saveAs просто создает элемент <a> и устанавливает его атрибут download. @JordanBurnett опубликовал его короткую версию. 18.06.2019

Ответы:


1

Вы можете создать тег привязки с атрибутом «загрузка», который позволит вам контролировать имя файла.

zip.generateAsync({
    type: "base64"
}).then(function(content) {
    var link = document.createElement('a');
    link.href = "data:application/zip;base64," + content;
    link.download = "your-file-name.zip";
    document.body.appendChild(link);
    link.click();
    document.body.removeChild(link);
});
18.06.2019
  • Привет Джордан, спасибо за ваш ответ, действительно создание тега привязки с атрибутом загрузки дало бы мне контроль над именем файла, но мне было интересно, есть ли в самой библиотеке какое-либо готовое решение для этого, в любом случае ваше предложение очень полезно .. +1 :) 18.06.2019
  • Беглый взгляд на fileSaver.js показывает, что они тоже используют этот метод :) 18.06.2019
  • @NickAth но мне было интересно, есть ли в самой библиотеке какое-нибудь готовое решение -› Нет: github.com/Stuk/jszip/blob/master/documentation/howto/ 18.06.2019
  • @Andreas, спасибо за ваш ответ, я буду следовать временному тегу привязки вместо того, чтобы включать целую библиотеку в свою систему, как предложил Джордан. 18.06.2019

  • 2

    В документации предлагается дополнительная библиотека под названием [FileSaver.js].1 См. здесь для примера, приведенного в проектах How To.

    18.06.2019
  • Справочный центр – Ответы – › Предоставьте контекст для ссылок: Ссылки на внешние ресурсы приветствуются, но, пожалуйста, добавьте контекст вокруг ссылки, чтобы ваши коллеги-пользователи имели некоторое представление о том, что это такое и почему оно там. Всегда цитируйте наиболее релевантную часть важной ссылки на случай, если целевой сайт недоступен или навсегда отключится. 18.06.2019
  • Новые материалы

    Кластеризация: более глубокий взгляд
    Кластеризация — это метод обучения без учителя, в котором мы пытаемся найти группы в наборе данных на основе некоторых известных или неизвестных свойств, которые могут существовать. Независимо от..

    Как написать эффективное резюме
    Предложения по дизайну и макету, чтобы представить себя профессионально Вам не позвонили на собеседование после того, как вы несколько раз подали заявку на работу своей мечты? У вас может..

    Частный метод Python: улучшение инкапсуляции и безопасности
    Введение Python — универсальный и мощный язык программирования, известный своей простотой и удобством использования. Одной из ключевых особенностей, отличающих Python от других языков, является..

    Как я автоматизирую тестирование с помощью Jest
    Шутка для победы, когда дело касается автоматизации тестирования Одной очень важной частью разработки программного обеспечения является автоматизация тестирования, поскольку она создает..

    Работа с векторными символическими архитектурами, часть 4 (искусственный интеллект)
    Hyperseed: неконтролируемое обучение с векторными символическими архитектурами (arXiv) Автор: Евгений Осипов , Сачин Кахавала , Диланта Хапутантри , Тимал Кемпития , Дасвин Де Сильва ,..

    Понимание расстояния Вассерштейна: мощная метрика в машинном обучении
    В обширной области машинного обучения часто возникает необходимость сравнивать и измерять различия между распределениями вероятностей. Традиционные метрики расстояния, такие как евклидово..

    Обеспечение масштабируемости LLM: облачный анализ с помощью AWS Fargate и Copilot
    В динамичной области искусственного интеллекта все большее распространение получают модели больших языков (LLM). Они жизненно важны для различных приложений, таких как интеллектуальные..