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

View in English Always switch to English

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 对象,否则返回 null .

示例

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

js
function dropHandler(ev) {
  console.log("放置操作");
  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("放置了 HTML");
    } else if (item.kind === "string" && item.type.match("^text/uri-list")) {
      // 拖拽数据项是 URI
      console.log("放置了 URI");
    } else if (item.kind === "file" && item.type.match("^image/")) {
      // 拖拽数据项是图像文件
      const f = item.getAsFile();
      console.log("放置了文件");
    }
  }
}

规范

Specification
HTML
# dom-datatransferitem-getasfile-dev

浏览器兼容性

参见