Нормализация fileName в IE11 и создание нового файла в Javscript - PullRequest
0 голосов
/ 09 марта 2020

Я пытаюсь загрузить файл, но я хочу нормализовать его имя fisrt, оно работает в других браузерах, но в IE11 я искал и обнаружил, что этот метод (нормализация) не поддерживается, поэтому я ' м с использованием полифилла unorm. поэтому нормализация теперь работает нормально, но мы не можем напрямую изменить fileName, нам нужно создать новый файл. Но мы не можем использовать новый файл, потому что он тоже не поддерживается. Поэтому я использовал новый Blob, но проблема в том, что я не получаю имя файла на стороне сервера, это всегда blob.

Код для других браузеров:

var fileName = file.name.normalize('NFD').replace(/[\u0300-\u036f]/g, "");
var newFile = new File([file], fileName, { type: file.type });
newFile.label = 'FICHIER';

Код для IE11

fileName = unorm.nfd(file.name);
newFile = new Blob([file], { type: file.type });
newFile.label = 'Fichier';
newFile.name= fileName;

Чтобы сгенерировать запрос к серверу, я использую formdata:

fd = new FormData();
fd.append("id", param);
fd.append(file.label || "uploadedFile", file, file[paramName]);

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

1 Ответ

0 голосов
/ 10 марта 2020

Объект Blob не содержит свойства name, поэтому мы не можем изменить имя с помощью объекта Blob.

После получения данных файла, я предлагаю вам добавить новый параметр для регистрации нового имени файла, а затем, когда отправляет форму или сохраняет загруженный файл, вы можете отправить данные файла и новое имя файла на сервер.

Кроме того, здесь есть еще одна тема о загрузить файл с помощью FormData, пожалуйста, обратитесь к нему:

Angular Загрузка файла

Загрузка файла с использованием AngularJS

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