HTML5 是否允许拖放上传文件夹或文件夹树? [英] Does HTML5 allow drag-drop upload of folders or a folder tree?

查看:19
本文介绍了HTML5 是否允许拖放上传文件夹或文件夹树?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我还没有看到任何这样做的例子.API 规范中不允许这样做吗?

I haven't seen any examples that do this. Is this not allowed in the API spec?

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

I am searching for an easy drag-drop solution for uploading an entire folder tree of photos.

推荐答案

现在可以了,感谢 Chrome >= 21.

It's now possible, thanks to 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);

更多信息:https://protonet.info/blog/html5-experiment-drag-drop-of-folders/

这篇关于HTML5 是否允许拖放上传文件夹或文件夹树?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆