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).
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.
- Relevant: stackoverflow.com/questions/8006715/... Es scheint möglich in diesen Tagen, aber nur mit einer echten
FileList
und Sie können nicht scheinen, um diese...
Du musst angemeldet sein, um einen Kommentar abzugeben.
Warum Sie brauchen, um eine Datei zu kopieren, um FileList?
Verwenden FileReader statt. Aber überprüfen einer Datei vor dem senden ist keine gute Idee. Aus Sicherheitsgründen sollten Sie dies in der server-Seite. Sie können die Datei zu validieren, bevor, aber Sie SOLLTEN überprüfen Sie die Datei erneut, wenn Sie empfangen.
https://developer.mozilla.org/en-US/docs/Web/API/FileReader?redirectlocale=en-US&redirectslug=DOM%2FFileReader