在IE11中规范化文件名并在Javscript中创建新文件

问题描述 投票:0回答:1

我正在尝试上传文件,但是我想将其名称标准化为fisrt,它可以在其他浏览器上使用,但是在IE11中,我进行了搜索,发现不支持此方法(标准化),所以我使用polyfill 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;

您能告诉我我应该怎么做才能获取文件名,或者是否还有其他方法可以做到这一点。

javascript angularjs file blob internet-explorer-11
1个回答
0
投票

Blob object不包含name属性,因此,我们无法通过Blob对象更改名称。

获取文件数据后,我建议您可以附加一个新参数来记录新文件名,然后,在提交表单或保存上载的文件时,可以将文件数据和新文件名发送到服务器。

此外,这是另一个有关使用FormData上传文件的主题,请参考它:

Angular File Upload

File Upload using AngularJS

© www.soinside.com 2019 - 2024. All rights reserved.