Ticket #22 - Utiliser un uploader html5 si possible
Renato vient de créer le plugin ddUpload permettant de mettre en ligne des fichiers en HTML5 et javascript.
Ce type d’upload semble un bon remplacement à l’utilisation de swfupload pour les navigateur permettant ce type d’upload (Firefox >= 3.6 et Google Chrome)
Regarder également :
- Plupload mais quelques problèmes importants :
- ne permet pas d’annuler un upload ;
- jQuery File Upload qui ne fait que la partie html5, on pourrait le coupler avec la solution déjà en place à base de SWFupload :
- Si le browser dispose d’HTML5 et de certaines features on l’utilise ;
- Sinon on utilise le flash de SWFupload ;
Problèmes :
- Plupload ne gère à l’heure actuelle pas encore l’annulation des téléchargements.
Solution :
La solution retenue est la combinaison jQuery File Upload si le navigateur est compatible HTML5 sinon pour les autres cas (vieilles versions de navigateur et Internet Explorer), on garde la solution de repli avec SWFUpload comme avant.
- Le plugin jfu pour SPIP est là : http://svn.aires-de-confluxence.info/trac/browser/plugins_spip/jquery_file_upload
4 commentaires
-
Une première implémentation "incomplète" dans emballe medias ici : http://svn.aires-de-confluxence.info/trac/changeset/5911
On commence à intégrer jQuery File Upload comme méthode d’upload par défaut (html5) sur les navigateurs compatibles
Modification des fonctions d’affichage de listes d’extension autorisées, elles prennent des arguments facltatifs supplémentaires permettant de gérer des retours différents en fonction des cas d’utilisation.
Le head de la page d’upload prend en compte la présence de jQuery File Upload ou Plupload (on garde pour peut être l’avenir si la librairie s’améliore)
Attention : le retour de la fonction d’upload est dorénavant du json => voir inclure/upload_formulaire.html
On met à jour le numéro de version en 0.9.0
-
On continue à améliorer la chose avec les commits suivants :
http://svn.aires-de-confluxence.info/trac/changeset/5916 :
On clean un peu la CSS d’emballe_medias
On améliore le html pour jfu pour ressembler un peu plus à celui de swfupload
On ajoute une fonction infos_upload qui permet de récupérer un objet pour les progress events
On clean un peu les fichiers de langue
http://svn.aires-de-confluxence.info/trac/changeset/5917 :
On mutualise du code entre swfupload et jfu
La fonction roundNumber passe dans le fichier de mutualisation des fonctions
swfupload utilise la fonction infos_upload qui renvoie un objet pour les évènements progress
La fonction swfupload donne le nombre de bytes soit en GB soit en MB soit en KB, l’affichage n’est donc plus limité aux KB
On charge le fichier de mutualisation des fonctions tout le temps et pas seulement quand jfu est présent
http://svn.aires-de-confluxence.info/trac/changeset/5918 :
on renomme les 3 fichiers javascript :
- fileprogress.js devient swfupload_fileprogress.js ;
- handler.js devient swfupload_handler.js ;
- html5_compat.js devient emballe_medias_fonctions.js ;
http://svn.aires-de-confluxence.info/trac/changeset/5919 :
On mutualise une nouvelle fonction : emballe_medias_verifier_upload() qui est dans le squelette car elle a besoin des balises SPIP
Cette fonction vérifie que l’on n’a pas déjà de fichiers associés à l’article (uploadé dans un autre tab par exemple)
Typos sur le fichier swfupload_progress.js
Correction d’une petite erreur dans uploadprogress
Seules les personnes identifiées peuvent écrire des tickets ou commentaires.
Création du plugin jfu pour SPIP avec les commits :
http://svn.aires-de-confluxence.info/trac/changeset/5904/plugins_spip/jquery_file_upload
http://svn.aires-de-confluxence.info/trac/changeset/5905/plugins_spip/jquery_file_upload :
http://svn.aires-de-confluxence.info/trac/changeset/5907/plugins_spip/jquery_file_upload :