在JavaScript中重命名File()对象

CBa*_*arr 15 javascript rename file file-rename

我希望我的用户能够在上传之前重新命名文件.

File在Javascript中有一个对象,它有一个name已设置的属性,但我希望能够更新它.现在,明显myFile.name = "new-name.txt"返回一个错误,该属性是只读的.

更改nameJavaScript File对象的属性的最佳方法是什么?

Pau*_*est 27

现在这file.name是一个只读属性,我发现这是在浏览器中重命名File对象的最佳方法:

const myNewFile = new File([myFile], 'new_name.png', {type: myFile.type});
Run Code Online (Sandbox Code Playgroud)

  • 干净,但 IE 和 Edge plus Opera for Android 不支持“File() 构造函数”。 (2认同)

Ale*_*rda 10

试试这个:

var blob = file.slice(0, file.size, 'image/png'); 
var newFile = new File([blob], 'name.png', {type: 'image/png'});
Run Code Online (Sandbox Code Playgroud)

注意:这是针对图像类型的,您必须使用您实际使用的类型更改此类型.

  • 我会说,如果您无论如何都在使用 File 对象,请使用:`var blob = file.slice(0, file.size, file.type)` (2认同)

bea*_*der 5

您可以添加一个input带有名称的标签并向name用户隐藏该属性。在服务器上,只需使用 作为input名称并忽略默认名称。

  • 这并不能真正回答问题。您没有说明如何重命名文件对象或如何创建具有不同名称的对象的副本。你基本上是说OP应该创建解决方法...... (3认同)