VeriTransfer öğelerini webkitGetAsEntry alacağınız sürükle ve bırak alanı oluşturmaya çalışıyorum ve girişin bir dizin veya dosya olup olmadığını kontrol edin.Bir FileList oluştur ve bu dosyayı bir Dosya girişine kopyala
Daha sonra dosyaları bir FileList'e dönüştürmek ve bunu bir dosya girişine (gönderilmeden önce doğrulanacak ve onaylanacak) kopyalamak istiyorum.
function handleDrop(event) {
event.preventDefault();
event.dataTransfer.dropEffect = 'copy';
var length = event.dataTransfer.items.length;
var elFileInput = document.getElementById('File');
for (var i = 0; i < length; i++) {
var entry = event.dataTransfer.items[i].webkitGetAsEntry();
if (entry.isFile) {
convertFilesToFileObjects(entry);
}
else if (entry.isDirectory) {
var dirReader = entry.createReader();
dirReader.readEntries(function(entries) {
for (var j = 0; j < entries.length; j++) {
convertFileEntrysToFileObjects(entries[j]);
}
});
}
}
function convertFileEntrysToFileObjects(fileEntry) {
var addFileToInput = function (file) {
console.log(file);
//elFileInput.files = event.dataTransfer.files;
//Need to make a FileList and populate it with Files.
};
if (fileEntry.isFile) {
fileEntry.file(function (addFileToInput, file) {
addFileToInput(file);
}.bind(this, addFileToInput));
}
}
}
ben, ben sığınak prototipler kullanarak ve nesneleri uzatarak bir FileList nesnesi yapmaya çalışıyorum en şaşırıp o salt okunur W3 FileList Interface
var HTMLInputElement içinde FileList bir dosya kopyalayamazsınız Henüz başımı JS miras ve prototipleri etrafında sardım.
FileList nesnesini oluşturmak ve dosyalarla doldurmak, sonra bunu InputElement öğesine kopyalamak bile mümkün mü?
Düzenlendi: Yanlış JSFiddle bağlantısı.
İlgili: Bugünlerde, ama sadece gerçek 'FileList ile mümkün gözükmektedir http://stackoverflow.com/questions/8006715/drag-drop-files-into-standard-html-file-input 've bunları yapmak için görünmüyor olabilirsiniz ... – Rudie