FileSaver save как не работает в IE11

1

В настоящее время я использую jszip, jszip-utils, and FileSaver для zip и загрузки нескольких PDF файлов.

self.createZip = function () {
    var docs = self.list.filteredItems();
    var zip = new JSZip();
    var count = 0;
    var zipFilename = "zipFilename.zip";

    docs.forEach(function (item) {
        var filename = item.formDesc() + "_" + item.id() + ".pdf";
        // loading a file and add it in a zip file
        JSZipUtils.getBinaryContent('../career/document/StreamFile/?path=' + item.fileName(), function (err, data) {
            if (err) {
                throw err; // or handle the error
            }
            zip.file(filename, data, { binary: true });
            count++;
            if (count == docs.length) {
                zip.generateAsync({ type: 'blob' }).then(function (content) {
                     try {
                             saveAs(content, zipFilename);
                        } catch (e) {
                            console.log(e);
                        }                   
                });                
            }
        });
    });

Эта функция в настоящее время работает во всех последних браузерах, кроме IE11. В IE11 загружаются все файлы, но Hangs on saveAs.

  • 1
    Это хороший первый шаг, но вы еще не достигли точки, когда публикация в Stackoverflow имеет смысл. Во-первых, сделайте некоторую отладку: где код перестает работать между версиями браузера, это известная проблема для файловой заставки (вы смотрели на их баг-трекер?), Есть ли какие-либо ошибки консоли, которые вы можете использовать для поиска в Google и т. Д. .? Прямо сейчас все, что вы говорите, это «мой код не работает, вот он, пожалуйста, поймите это для меня», без каких-либо признаков того, что вы сначала попытались выяснить, что может быть не так, сами .
  • 0
    Майк, я сделал все это, даже добавил блок try, чтобы поймать любую ошибку, но ошибки нет. все похожие проблемы, которые я нашел, предлагали использовать тип blob для IE11. как я сказал в посте, он висит на SaveAs и ничего не делает. Итак, я разместил здесь, чтобы увидеть, если кто-то еще сталкивался с этой проблемой.
Показать ещё 2 комментария
Теги:
filesaver.js
jszip

1 ответ

2
Лучший ответ

Попробуйте выполнить следующее после инструкции SaveAs, чтобы очистить буфер

content = null;

Ещё вопросы

Сообщество Overcoder
Наверх
Меню