2010-07-26 47 views
13

Gmail能够让您将文件拖放到附件的电子邮件中,令我印象深刻,但是当我尝试将文件夹拖到其上时,它说文件有0个字节。这是Gmail的限制吗?或者这是目前HTML 5规范基本无法实现的东西?HTML 5可以拖放处理文件夹吗?

+0

实际上,您可以拖动文件夹,但无法从包含的文件中读取任何数据。在Safari中,您将得到带有text/uri-list类型的剪贴板数据,您可以使用它来确定文件夹的路径,但这就是它。 – 2011-10-20 03:43:32

回答

17

对铬现已目录上传

您可以使用输入型

<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 
    } 
    } 
}; 
+0

是否可以使用'webkitRelativePath'? http://www.htmlfivewow.com/slide18 – est 2013-01-07 04:49:16

+0

div的id有一些奇怪的曲线引号。我想知道为什么当我把它粘贴在我的编辑器上时它不工作。 – 2015-06-10 17:24:48

3

当前draft of html5仅支持用于处理getData事件的文件列表对象。所以你可以拖动多个文件到一个拖动目标,但没有文件夹

+2

实现文件夹递归文件的“文件列表”不是很简单吗? (我的意思是浏览器供应商直截了当,我知道这是不能通过JavaScript现在可以实现的) – 2012-01-20 11:59:53