2010-07-26 5 views
13

Sono impressionato dalla capacità di Gmail di lasciarti trascinare i file nelle e-mail per gli allegati, ma quando provo a trascinarne una cartella, dice che il file ha 0 byte. Si tratta di una limitazione di Gmail, o è qualcosa che fondamentalmente non è fattibile con le attuali specifiche HTML 5?L'HTML 5 può trascinare e rilasciare le cartelle?

+0

In realtà è possibile trascinare le cartelle, ma non è possibile leggere alcun dato dai file contenuti. In Safari otterrai i dati degli appunti con testo di tipo/uri-list che puoi utilizzare per capire qual è il percorso della cartella, ma questo è tutto. –

risposta

17

ora CARICA directory disponibili su Chrome

è possibile selezionare directory utilizzando il tipo di ingresso

<input type='file' webkitdirectory > 

ed è possibile trascinare rilasciare una cartella

<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

È possibile utilizzare 'webkitRelativePath'? http://www.htmlfivewow.com/slide18 – est

+0

l'ID per il div ha alcune citazioni strani ricci. Mi chiedevo perché non funzionava quando l'ho incollato sul mio editor. –

3

L'attuale draft of html5 supporta solo un oggetto elenco file per la gestione degli eventi getData . in modo da poter trascinare più file ad una destinazione di trascinamento, ma non le cartelle

+2

Non sarebbe semplice implementare un "elenco di file" che sono i file non recuperati di una cartella? (Intendo per i venditori di browser, capisco che questo non sia implementabile attualmente da javascript) –