当前位置: 首页 > 面试题库 >

HTML5是否允许拖放拖放文件夹或文件夹树?

李利
2023-03-14
问题内容

我还没有看到执行此操作的示例。API规范中不允许这样做吗?

我正在寻找一种简单的拖放解决方案,用于上传整个文件夹的照片树。


问题答案:

多亏了Chrome> = 21,现在才有可能。

function traverseFileTree(item, path) {
  path = path || "";
  if (item.isFile) {
    // Get file
    item.file(function(file) {
      console.log("File:", path + file.name);
    });
  } else if (item.isDirectory) {
    // Get folder contents
    var dirReader = item.createReader();
    dirReader.readEntries(function(entries) {
      for (var i=0; i<entries.length; i++) {
        traverseFileTree(entries[i], path + item.name + "/");
      }
    });
  }
}

dropArea.addEventListener("drop", function(event) {
  event.preventDefault();

  var items = event.dataTransfer.items;
  for (var i=0; i<items.length; i++) {
    // webkitGetAsEntry is where the magic happens
    var item = items[i].webkitGetAsEntry();
    if (item) {
      traverseFileTree(item);
    }
  }
}, false);


 类似资料:
  • 我想将事件附加到元素以处理文件拖放事件,但似乎此事件也附加到所有子元素。例如 ...如果我将文件拖到属于元素的任何元素上,控制台将输出。因此,如果我将此事件附加到或,则当悬停在页面上的任何元素上时,事件将触发。 对于<code>dragleave 为什么会这样?有没有办法把这个事件只附加到指定的元素上?如果没有,有没有办法将事件从所有子元素中分离出来? 这里有一个摆弄的例子:http://jsfi

  • 问题内容: 我正在尝试向我的SwiftUI Mac应用程序添加“拖放”手势/功能。 我想将文件从系统/桌面拖放到应用程序中。我发现它可以在常规Swift中使用。我现在正尝试在SwiftUI中执行此操作。 我在SwiftUI for Views中找到了一个函数。但是,看起来这仅适用于应用程序内部的内部手势。我想从外面拖文件。 在Swift中,您需要为拖动的类型注册NSView。 我想创建一个NSVi

  • #div1, #div2 {float:left; width:100px; height:35px; margin:10px;padding:10px;border:1px solid #aaaaaa;} function allowDrop(ev) { ev.preventDefault(); } function drag(ev) { ev.dataTransfer.setData("Tex

  • 作为桌面程序,当然希望能够实现操作系统的 drag & drop 功能。 很多网站已经支持拖拽文件 Electron 当然也支持 要在 app 中实现此功能 ,你需要在 Render 进程中调用webContents.startDrag(item) API, 此API会给 Main 进程发送一个ondragstart事件。 在 Render 进程中, 接收 ondragstart 事件并发送消息到

  • 概览 作为桌面程序,当然希望能够实现操作系统的 drag & drop 功能。 很多网站已经支持拖拽文件, Electron 当然也支持 要在您的应用中实现此功能,您需要调用 webContent.startDrag(item) API 响应 ondragstart 事件。 示例 一个演示如何动态创建要从窗口中拖出的文件的示例。 Preload.js 在 preload.js 中使用 contex

  • 问题内容: 如今,我们可以将文件拖放到一个特殊的容器中,并使用XHR2上载它们。带有实时进度条等。非常酷的东西。 但是有时候我们不想要那么酷。我想要的是一次将文件拖放 到标准HTML文件输入中 :。 那可能吗?有什么方法可以从文件拖放中用正确的文件名(?)“填充”文件输入吗?(出于文件系统安全性原因,完整的文件路径不可用。) 为什么? 因为我想提交一份普通表格。适用于所有浏览器和所有设备。拖放只是