<input type="file">
から受信したファイルのプロパティは読み取り専用です。JavaScriptでFileオブジェクトの修正されたコピーを作成するには?
例えば、file.name
を書き直そうとすると、暗黙的に失敗するか、TypeError: Cannot assign to read only property 'name' of object '#<File>'
を投げます。 Object.assign({}, file)
失敗した(空のオブジェクトを作成します)を経由してコピーを作成しようとすると
<input onchange="onchange" type="file">
onchange = (event) => {
const file = event.target.files[0];
file.name = 'foo';
}
。
したがって、どのようにしてFile
オブジェクトをクローンしますか?
https://developer.mozilla.org/en-US/docs/Web/API/Blob/Blob
let file = event.target.files[0];
if (this.props.distro) {
const name = 'new-name-here' + // Concat with file extension.
file.name.substring(file.name.lastIndexOf('.'));
// Instantiate copy of file, giving it new name.
file = new File([file], name, { type: file.type });
}
注File()
の最初の引数でなければなりません:自身がBlob
の拡張である
https://developer.mozilla.org/en-US/docs/Web/API/File#Implementation_notes
:
ええ、これはありがとうございます。 – Jazzy