Je suis impressionné par la capacité de Gmail à vous permettre de faire glisser des fichiers dans des e-mails pour les pièces jointes, mais lorsque j'essaie de faire glisser un dossier sur celui-ci, il dit que le fichier a 0 octet. Est-ce une limitation de Gmail, ou est-ce quelque chose qui n'est pas fondamentalement faisable avec la spécification HTML 5 actuelle?Est-ce que les dossiers de poignées glisser-déposer HTML 5 peuvent être utilisés?
Répondre
maintenant Répertoire de téléchargement disponible sur le chrome
vous pouvez sélectionner le répertoire en utilisant le type d'entrée
<input type='file' webkitdirectory >
et vous pouvez faire glisser déposer un dossier
<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
}
}
};
Est-il possible d'utiliser 'webkitRelativePath'? http://www.htmlfivewow.com/slide18 – est
l'ID pour le div a quelques citations curly bizarres. Je me demandais pourquoi ça ne fonctionnait pas quand je l'ai collé sur mon éditeur. –
Le draft of html5 actuel ne prend en charge qu'un objet de liste de fichiers pour gérer les événements getData . de sorte que vous pouvez faire glisser plusieurs fichiers vers une cible de traînée, mais aucun dossier
Ne serait-il pas facile d'implémenter une "liste de fichiers" qui sont les fichiers récursifs d'un dossier? (Je veux dire simple pour les vendeurs de navigateurs, je comprends que ce n'est pas implémentable par javascript actuellement) –
Vous pouvez réellement faire glisser des dossiers, mais vous ne pouvez pas lire les données des fichiers contenus. Dans Safari, vous obtiendrez des données de presse-papiers avec le type text/uri-list que vous pouvez utiliser pour déterminer le chemin du dossier, mais c'est à peu près tout. –