Загрузка большого файла CSV - href непреднамеренно усечение результатов - PullRequest
0 голосов
/ 14 мая 2019

Я пытаюсь загрузить CSV-файл, используя метод href, однако кажется, что данные усекаются при установке его в тег href.Для IE я использовал msSaveBlob, и он, кажется, работает правильно, и все данные загружаются правильно.

            if (navigator.msSaveBlob) { // IE 10+
                navigator.msSaveBlob(new Blob([data], { type: 'text/csv;charset=utf-8;' }), filename);
            }
            //
            var csvContent = "data:text/csv;charset=utf-8," + data;
            var encodedUri = encodeURI(csvContent);
            var link = document.createElement("a");
            link.setAttribute("href", encodedUri);
            //
            link.setAttribute("download", filename);
            link.innerHTML = "CSV Link - Placeholder";
            document.body.appendChild(link); // Required for FF

            link.click();

Это относительно большие файлы, 9k строк в Excel (около 500 КБ).Любые идеи, что я могу сделать, чтобы остановить это усечение?Должен ли я использовать другой метод?Спасибо!

1 Ответ

1 голос
/ 14 мая 2019

Решено с помощью ответа ниже: загрузка файла с использованием запроса ajax

По существу:

            var file = new Blob([data], {type: 'text/csv;charset=utf-8;'});
            if (window.navigator.msSaveOrOpenBlob) // IE10+
                window.navigator.msSaveOrOpenBlob(file, filename);
            else { // Others
                var a = document.createElement("a"),
                url = URL.createObjectURL(file);
                a.href = url;
                a.download = filename;
                document.body.appendChild(a);
                a.click();
                setTimeout(function() {
                    document.body.removeChild(a);
                    window.URL.revokeObjectURL(url);  
                }, 0); 
            }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...