<input type="file">
से प्राप्त फ़ाइलों की गुण केवल पढ़ने के लिए हैं।जावास्क्रिप्ट में किसी फ़ाइल ऑब्जेक्ट की संशोधित प्रति कैसे बनाएं?
उदाहरण के लिए, file.name
को फिर से लिखने का निम्न प्रयास या तो चुपचाप विफल हो जाएगा या TypeError: Cannot assign to read only property 'name' of object '#<File>'
फेंक देगा।
<input onchange="onchange" type="file">
onchange = (event) => {
const file = event.target.files[0];
file.name = 'foo';
}
प्रतिलिपि बनाने के लिए के माध्यम से Object.assign({}, file)
विफल रहता है प्रयास कर रहा है (एक खाली वस्तु बनाता है)।
तो कैसे एक File
ऑब्जेक्ट क्लोन करता है?
https://developer.mozilla.org/en-US/docs/Web/API/File#Implementation_notes
जो अपने आप Blob
का एक विस्तार है:
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()
को पहले तर्क एक होना चाहिए
हाँ, यह धन्यवाद काम करता है। – Jazzy