Dieser Inhalt wurde automatisch aus dem Englischen übersetzt, und kann Fehler enthalten. Erfahre mehr über dieses Experiment.

View in English Always switch to English

DataTransfer: files Eigenschaft

Baseline
Weitgehend verfügbar

Diese Funktion ist gut etabliert und funktioniert auf vielen Geräten und in vielen Browserversionen. Sie ist seit Juli 2015 browserübergreifend verfügbar.

Die files schreibgeschützte Eigenschaft des DataTransfer-Interfaces ist eine Liste der Dateien in der Ziehoperation. Wenn die Operation keine Dateien umfasst, ist die Liste leer.

Diese Funktion kann verwendet werden, um Dateien von einem Desktop des Nutzers in den Browser zu ziehen.

Während einer Ziehoperation kann diese Eigenschaft nur verwendet werden, um Dateien in den Handlern für die dragstart und drop-Events zu lesen, da dies die einzigen Zeiten sind, in denen der Ziehdaten-Store lesbar ist. Der Zugriff darauf von jedem anderen Zieh-Event ergibt eine leere Liste. Siehe Lesen des Ziehdaten-Stores für Details.

Für Zwischenablageoperationen können Dateien auch im Handler für das paste-Event unter Verwendung von ClipboardEvent.clipboardData gelesen werden.

Wert

Eine FileList der Dateien in einer Ziehoperation, ein Listeneintrag für jede Datei in der Operation. Wenn die Ziehoperation keine Dateien hatte, ist die Liste leer.

Beispiele

Lesen der Dateiliste

Dieses Beispiel erstellt einen grundlegenden Bereich, in den Sie Dateien ablegen können, und zeigt einige Metadaten an.

html
<pre id="output">Drop files here from your file system.</pre>
css
#output {
  min-height: 200px;
  border: 1px solid black;
  padding: 1em;
}
js
const output = document.getElementById("output");

function log(text) {
  output.innerText += text;
}

output.addEventListener("dragenter", (e) => {
  e.stopPropagation();
  e.preventDefault();
  output.textContent = "";
});
output.addEventListener("dragover", (e) => {
  e.stopPropagation();
  e.preventDefault();
});
output.addEventListener("drop", (e) => {
  e.stopPropagation();
  e.preventDefault();
  const files = event.dataTransfer.files;
  log(`File Count: ${files.length}\n`);

  for (const file of files) {
    log(`  File: ${file}, ${file.name}, ${file.size} bytes\n`);
  }
});

Spezifikationen

Spezifikation
HTML
# dom-datatransfer-files-dev

Browser-Kompatibilität