2010-07-26 13 views
13

Gmail'in ekleri için e-postalara dosya sürüklemenize izin verme yeteneğinden etkilendim, ancak bir klasörü sürüklemeye çalıştığımda, dosyanın 0 bayt olduğunu söylüyor. Bu bir Gmail sınırlaması mı, yoksa şu andaki HTML 5 özelliklerine göre temel olarak yapılmayan bir şey mi?HTML 5 sürükle ve bırak işlemek klasörleri olabilir mi?

+0

Aslında klasörleri sürükleyebilirsiniz, ancak içerilen dosyalardan herhangi bir veri okuyamazsınız. Safari'de, klasörün yolunun ne olduğunu bulmak için kullanabileceğiniz tip metin/uri-liste ile pano verisi alırsınız, ancak bu konuyla ilgili. –

cevap

17
krom geçerli

Şimdi dizin yükleme

giriş tipini

<input type='file' webkitdirectory > 

kullanarak dizini seçebilir ve bir klasör bırakmayı sürükleyebilir

<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' kullanmak mümkün mü? http://www.htmlfivewow.com/slide18 – est

+0

div için id bazı tuhaf kıvırcık tırnak işaretleri var. Editörüme yapıştırdığımda neden çalışmadığını merak ediyordum. –

3

Geçerli draft of html5 yalnızca getData olaylarını işlemek için bir dosya listesi nesnesini destekler. böylece birden fazla sürükleme hedefi dosyaları ama hiçbir klasörleri

sürükleyebilir
+2

Bir klasörün yinelenen dosyaları olan bir "dosya listesi" uygulamak kolay olmaz mıydı? (Ben tarayıcı satıcıları için doğrudan demek istediğim, şu anda javascript tarafından uygulanamaz olduğunu anlıyorum) –