पर कॉपी करें मैं एक ड्रैग और ड्रॉप क्षेत्र बनाने की कोशिश कर रहा हूं जो डेटा प्राप्त करेगा वेबकिट GetAsEntry द्वारा आइटम को ट्रांसफर करें और जांचें कि प्रविष्टि निर्देशिका या फ़ाइल है या नहीं।एक फ़ाइलसूची बनाएं और इसे एक फ़ाइल इनपुट
मैं फिर फ़ाइलों को फ़ाइललिस्ट में बनाने में सक्षम होना चाहता हूं और उसे फ़ाइल इनपुट में कॉपी करना चाहता हूं (जिसे पोस्ट करने से पहले सत्यापित और प्राप्त किया जाएगा)।
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));
}
}
}
मैं HTMLInputElement में FileList करने के लिए एक फ़ाइल की प्रतिलिपि नहीं कर सकते हैं यह केवल पढ़ने के लिए W3 FileList Interface
है मैं प्रोटोटाइप का उपयोग कर और, मैं हेवन वस्तुओं का विस्तार करके एक FileList वस्तु बनाने की कोशिश कर पर अटक कर रहा हूँ जेएस विरासत और प्रोटोटाइप के आसपास अभी तक मेरे सिर को लपेटा नहीं है।
क्या मैं फ़ाइललिस्ट ऑब्जेक्ट बनाने और फ़ाइलों के साथ इसे पॉप्युलेट करना भी संभव है, फिर इसे इनपुट एलीमेंट पर कॉपी करें?
संपादित: गलत JSFiddle लिंक।
प्रासंगिक: http://stackoverflow.com/questions/8006715/drag-drop-files-into-standard-html-file-input यह इन दिनों, लेकिन केवल एक असली 'FileList के साथ संभव लगता है 'और आप उन्हें बनाने के लिए प्रतीत नहीं कर सकते हैं ... – Rudie