2010-07-26 90 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