我正在尝试上传文件,但是我想将其名称标准化为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;
您能告诉我我应该怎么做才能获取文件名,或者是否还有其他方法可以做到这一点。
Blob object不包含name属性,因此,我们无法通过Blob对象更改名称。
获取文件数据后,我建议您可以附加一个新参数来记录新文件名,然后,在提交表单或保存上载的文件时,可以将文件数据和新文件名发送到服务器。
此外,这是另一个有关使用FormData上传文件的主题,请参考它: