IE11 сохраняет загруженные файлы .xlsx, поврежденные в угловом формате с использованием BLOB-объектов (работает локально) - PullRequest
0 голосов
/ 04 июня 2018

Когда я загружаю файл .xlsx с сервера, загруженный файл не имеет правильной структуры (таблица стилей, рабочая таблица и т. Д.), Но это просто двоичный файл с расширением .xlsx.

Примечание: Отлично работает на Chrome, Firefox, Edge и локально даже в IE11, и я установил одинаковые настройки безопасности Internet Explorer для локальных и удаленных веб-сайтов.

Вот как сервер создает ответ:

const buffer = json2xls(values, { fields: fields });
res.end(buffer, 'binary');

Так клиент сохраняет выбранные данные:

downloadFile(selectedReport) {
const blob = new Blob([selectedReport.blob()], { type: 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet' });
FileSaver.saveAs(blob, `result.xlsx`);
}

Я попытался заменить:

FileSaver.saveAs (blob, result.xlsx);

с:

window.navigator.msSaveBlob (blob, result.xlsx);

, но результат остается тем же.

Примечание: содержимое поврежденного result.xlsx файла совпадает с buffer, отправленным сервером.

1 Ответ

0 голосов
/ 04 июня 2018

Проверяли ли вы свой http сервер MIME Types?для .xlsx должен быть файл application / vnd.openxmlformats-officedocument.spreadsheetml.sheet

...