örneğin, farklı bir <input type="file">
elemanı .files
özellik veya DataTransfer.files
özelliği bir FileList
için <input type="file">
elemanının .files
özelliğini ayarlamak mümkündür. Bakınız Make .files settable #2866, What happens between uploading a file to an HTML form and submitting it?.Dosyaların FormData nesnesine de yansıtıldığı FileList nesnesinde File nesneleri ve length özelliği nasıl ayarlanır?
FileList
DiziNesnesi iterable bir File
nesne, ancak .files
.length
hala 0
ayarlanır ayarlamak için kullanabilir bir Symbol.iterator
özelliğine sahiptir ve geçen bir <form>
.files
bir verir yukarıdaki yaklaşım kullanılarak ayarlanır <input type="file">
grubu olan .size
olan File
nesnesi 0
olarak ayarlanmıştır.
Nasıl FileList
de File
ayarlamak ve dosyalar FormData()
nesneye ayarlanır set dosya sayısı için FileList
arasında .length
ayarlamak için?
const input = document.createElement("input");
const form = document.createElement("form");
const [...data] = [
new File(["a"], "a.txt")
, new File(["b"], "b.txt")
];
input.type = "file";
input.name = "files";
input.multiple = true;
// set `File` objects at `FileList`
input.files[Symbol.iterator] = function*() {
for (const file of data) {
yield file
};
};
form.appendChild(input);
const fd = new FormData(form);
for (const file of input.files) {
console.log(file); // `File` objects set at `data`
}
for (const [key, prop] of fd) {
// `"files"`, single `File` object having `lastModified` property
// set to a time greater than last `File` object within `data`
// at Chromium 61, only `"files"` at Firefox 57
console.log(key, prop);
}
console.log(input.files.length); // 0
sadece önceki kesmen iyi olmaz https://developer.mozilla.org/en-US/Firefox/Releases/57#DOM –