IE 11 не удалось создать объект файла из байтового массива в Angular - PullRequest
0 голосов
/ 18 февраля 2020

Может кто-нибудь сказать мне, почему IE11 выдает ошибку В других браузерах, работающих только в IE получая ошибку "объект не поддерживает это действие"

let file = new File([files], newFileName, { type: Constants.FILECONTENTTYPE, lastModified: Date.now() });
                let uploadDocument = new UploadDocument();
                uploadDocument.fileName = newFileName;
                uploadDocument.fileItem = file;
                this.fileList = [];
                this.mergedFileList.forEach(fileItem => {
                    this.fileList.push(fileItem);
                });

Ответы [ 2 ]

0 голосов
/ 19 февраля 2020

IE не поддерживает File() constructor и lastModified.

В IE вы должны создать объект Blob, а затем задать некоторые определенные c свойства с именем файла, датой последнего изменения и типом для BLOB-объекта. Файлы представляют собой BLOB-объекты плюс мета-свойства.

var blob = new Blob([files], { type: Constants.FILECONTENTTYPE });      
blob['fileName'] = newFileName;     
blob['lastModifiedDate'] = Date.now();

Для получения дополнительной информации вы также можете обратиться к этой теме .

0 голосов
/ 18 февраля 2020

Вам нужно добавить import 'core-js/es6/object'; в ваш файл polyfill.ts.

IE11 был выпущен до ES6, поэтому он не реализует те же методы для объектов, массивов, дат, ..., чем современные браузеры (ES7).

Вы также можете импортировать методы ES7 с помощью import 'core-js/es7/object';, но я думаю, что в вашем случае достаточно ES6.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...