【问题标题】:Can HTML 5 drag-and-drop handle folders?HTML 5 可以拖放处理文件夹吗?
【发布时间】:2010-07-26 16:35:58
【问题描述】:

Gmail 允许您将文件拖到电子邮件中作为附件的功能给我留下了深刻的印象,但是当我尝试将文件夹拖到它上面时,它说文件有 0 字节。这是 Gmail 的限制,还是当前的 HTML 5 规范根本无法做到这一点?

【问题讨论】:

  • 您实际上可以拖动文件夹,但您无法从包含的文件中读取任何数据。在 Safari 中,您将获得类型为 text/uri-list 的剪贴板数据,您可以使用这些数据来确定文件夹的路径,但仅此而已。

标签: html drag-and-drop gmail


【解决方案1】:

现在可以在 chrome 上上传目录

您可以使用输入类型选择目录

<input type='file' webkitdirectory >

你可以拖放一个文件夹

<div id="dropzone"></div>

var dropzone = document.getElementById('dropzone');
dropzone.ondrop = function(e) {
  var length = e.dataTransfer.items.length;
  for (var i = 0; i < length; i++) {
    var entry = e.dataTransfer.items[i].webkitGetAsEntry();
    if (entry.isFile) {
      ... // do whatever you want
    } else if (entry.isDirectory) {
      ... // do whatever you want
    }
  }
};

【讨论】:

  • div 的 id 有一些奇怪的花括号。我想知道为什么当我将它粘贴到我的编辑器时它不起作用。
【解决方案2】:

目前的draft of html5 只支持一个文件列表对象来处理 获取数据事件。因此您可以将多个文件拖动到拖动目标,但不能拖动文件夹

【讨论】:

  • 实现一个文件夹的递归文件的“文件列表”不是很简单吗? (我的意思是对浏览器供应商来说直截了当,我知道目前 javascript 无法实现)
猜你喜欢
  • 2016-02-26
  • 2017-04-01
  • 1970-01-01
  • 2014-02-05
  • 2012-01-27
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-03-04
相关资源
最近更新 更多