FileSaver saveAs не работает в IE11

В настоящее время я использую jszip, jszip-utils, and FileSaver для архивирования и загрузки нескольких 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 получает все файлы, но зависает при сохранении как.


person capiono    schedule 08.09.2017    source источник
comment
Это хороший первый шаг, но вы еще не достигли того момента, когда публикация в Stackoverflow имеет смысл. Во-первых, выполните некоторую отладку: где код перестает работать между версиями браузера, является ли это известной проблемой для хранителя файлов (вы смотрели их систему отслеживания ошибок?), есть ли какие-либо ошибки консоли, которые вы можете использовать для поиска в Google и т. д. .? Прямо сейчас все, что вы говорите, это то, что мой код не работает, вот он, пожалуйста, разберитесь с ним, без каких-либо признаков того, что вы сначала пытались узнайте, что может быть не так, сами.   -  person Mike 'Pomax' Kamermans    schedule 08.09.2017
comment
Майк, я сделал все это, даже добавил блок try, чтобы поймать любую ошибку, но ошибки нет. все подобные проблемы, которые я обнаружил, предлагали использовать тип blob для IE11. как я уже сказал в посте, он висит на SaveAs и ничего не делает. Итак, я написал здесь, чтобы узнать, сталкивался ли кто-нибудь с этой проблемой.   -  person capiono    schedule 08.09.2017
comment
Учитывая это утверждение, я предполагаю, что вы искали в Google что-то вроде filesaverjs ie11, первое обращение к которому дает мне stackoverflow.com/questions/39266801/ - вы не упоминаете об этом в своем посте и не упоминаете, не работает ли его решение для вас . Если это так: этот вопрос не нуждался в публикации. Если это не так, это информация, о которой люди здесь должны знать, потому что это делает вашу проблему действительно отличной от уже решенной (несколько раз из того, что я могу сказать по поиску) в Stackoverflow.   -  person Mike 'Pomax' Kamermans    schedule 08.09.2017
comment
Возможный дубликат Сохранение файла в IE11 с помощью FileSaver   -  person Rob    schedule 08.09.2017


Ответы (1)


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

content = null;
person Elena Maximova    schedule 08.09.2017
comment
Браузер IE все еще падает - person Amit; 18.04.2020