DataTransferItem: getAsFile() method
Baseline Widely available
This feature is well established and works across many devices and browser versions. It’s been available across browsers since July 2015.
If the item is a file, the DataTransferItem.getAsFile()
method returns the drag data item's File
object.
If the item is not a file, this method returns null
.
Syntax
js
getAsFile()
Parameters
None.
Return value
Examples
This example shows the use of the getAsFile()
method in a drop
event handler.
js
function dropHandler(ev) {
console.log("Drop");
ev.preventDefault();
const data = ev.dataTransfer.items;
for (let i = 0; i < data.length; i += 1) {
if (data[i].kind === "string" && data[i].type.match("^text/plain")) {
// This item is the target node
data[i].getAsString((s) => {
ev.target.appendChild(document.getElementById(s));
});
} else if (data[i].kind === "string" && data[i].type.match("^text/html")) {
// Drag data item is HTML
console.log("… Drop: HTML");
} else if (
data[i].kind === "string" &&
data[i].type.match("^text/uri-list")
) {
// Drag data item is URI
console.log("… Drop: URI");
} else if (data[i].kind === "file" && data[i].type.match("^image/")) {
// Drag data item is an image file
const f = data[i].getAsFile();
console.log("… Drop: File");
}
}
}
Specifications
Specification |
---|
HTML Standard # dom-datatransferitem-getasfile-dev |
Browser compatibility
BCD tables only load in the browser