此页面由社区从英文翻译而来。了解更多并加入 MDN Web Docs 社区。

DataTransferItem:getAsFile() 方法

Baseline Widely available

This feature is well established and works across many devices and browser versions. It’s been available across browsers since ⁨2016年11月⁩.

如果 DataTransferItem 是一个文件, DataTransferItem.getAsFile() 方法将返回拖放项数据的 File 对象。如果拖放项的数据不是一个文件,则返回 null.

语法

js
getAsFile()

参数

无。

返回值

File

在拖放项的对象是一个文件时返回 File 对象,否则返回 null .

示例

下述示例展示了 getAsFile()drop 事件处理器中的用法。

js
function dropHandler(ev) {
  console.log("Drop");
  ev.preventDefault();
  for (const item of ev.dataTransfer.items) {
    if (item.kind === "string" && item.type.match("^text/plain")) {
      // 项目是目标节点
      item.getAsString((s) => {
        ev.target.appendChild(document.getElementById(s));
      });
    } else if (item.kind === "string" && item.type.match("^text/html")) {
      // 拖动数据项时 HTML
      console.log("… Drop: HTML");
    } else if (item.kind === "string" && item.type.match("^text/uri-list")) {
      // 拖动数据项是 URI
      console.log("… Drop: URI");
    } else if (item.kind === "file" && item.type.match("^image/")) {
      // 拖动数据项是图像文件
      const f = item.getAsFile();
      console.log("… Drop: File");
    }
  }
}

规范

Specification
HTML
# dom-datatransferitem-getasfile-dev

浏览器兼容性

查看更多