Erstellen Sie eine Dateiliste aus und kopieren Sie es auf ein File-input

Ich versuche zu schaffen, ein drag-und-drop-Bereich zu bekommen, die dataTransfer-Objekte durch webkitGetAsEntry und überprüfen Sie, ob der Eintrag ein Verzeichnis oder eine Datei.

Ich würde dann gerne in der Lage sein, um die Dateien in einer Dateiliste aus und kopieren Sie es in eine Datei-Eingabe (wird validiert und proccesed, bevor gepostet).

JSFiddle

  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));
            }
        }
    }

Kann ich nicht kopieren Sie eine Datei in der FileList im HTMLInputElement es ist readonly W3 FileList-Schnittstelle

Bin ich fest bei dem Versuch zu machen, ein FileList-Objekt durch die Verwendung von Prototypen und Ausweitung der Objekte, die ich noch nicht ganz eingewickelt meinem Kopf herum JS Vererbung und Prototypen noch.

Ich ist es sogar möglich, ein FileList-Objekt und füllen es mit den Dateien, dann kopieren Sie den InputElement?

Bearbeitet: Falsch JSFiddle link.

Schreibe einen Kommentar