从剪贴板中提取文件或粘贴本地文件

Extract files from clipboard OR paste local files

在写这个答案之前,我尝试了很多事情,比如从 new File('file:///asdasd.jpg') 读取,为 <input type='file' /> 提供默认值,发送获取请求和获取 blob。

None 这些解决方案似乎有效(Chrome - 2021 年 6 月 14 日)

处理这个问题的简单方法:

  • 在文档
  • 上收听 paste 事件
  • 提取文件
  • fileList
  • 创建数组
document.addEventListener('paste', (event) => {
  const clipboardData = (event.clipboardData || window.clipboardData);
  const files = Array.from(clipboardData.files);
  if (files.length > 0) {
    // Do something with `files`
  }
});