Upload de fichier avec barre de progression en PHP

Il y a une petite nouveauté dans PHP 5.2 qui est passée un peu inaperçu, c’est la possibilité de suivre l’avancement de l’upload d’un fichier.

Je me suis un peu amusé à tester ça en local et ça marche :) Bon, le problème c’est qu’il faut l’extension APC pour pouvoir lire dans le cache PHP. Je vous aurai bien mis une petite démo en ligne mais mon hébergeur n’a pas installé l’extension et je ne peux pas la charger dynamiquement avec la fonction dl.

Du coup, je me demande si ça vaut vraiment la peine d’implémenter ça dans l’E2T… Combien d’hébergeurs propose APC ? Je doute qu’il y en ait beaucoup malheureusement. C’est dommage car le système est assez simple à mettre en place, quelques lignes de code (PHP et Javascript) suffisent.

Je pensais aussi l’utiliser dans FabCMS mais je vais finalement me diriger vers quelque chose en flash…

Sortie de Mootools 1.1

La nouvelle version de Mootools, un framework javascript que j’ai déjà présenté, est sortie il y a quelques jours.

Cette mise à jour n’apporte pas vraiment de nouvelle fonctionnalité importante. Le but était d’optimiser le code, d’ajouter quelques fonctions intéressantes et de corriger les bugs. La liste des changements est disponible sur le wiki Mootools.

Le site officiel Mootools a aussi été amélioré puisqu’il propose maintenant une liste de démonstrations des fonctionnalités du framework.

Personnellement, je suis toujours aussi content de Mootools. Je ne regrette pas d’avoir abandonné scriptaculous qui été vraiment buggé surtout avec les navigateurs n’utilisant pas gecko (le moteur de rendu de Firefox).

D’ailleurs, j’ai récemment mis à jour mon site Smallville Site Web avec la toute dernière version (beta) de mon CMS perso (FabCMS pour les intimes). Mootools (v1.0) est bien sûr utilisé, ça peut ainsi vous donner un exemple d’utilisation de cet excellent framework… :)

Mootools, framework javascript

Logo Mootools

Mootools est une librairie javascript qui permet, notamment, d’utiliser AJAX et de créer de jolis effets sur un site web. Jusque là rien de nouveau, il en existe déjà un certain nombre sur internet mais l’une des qualités de mootools est d’être léger ce qui le point faible actuel des autres frameworks…

La page de téléchargement de Mootools permet de se créer un framework personnalisé en choisissant uniquement les fonctions que l’on souhaite. On a ainsi une librairie javascript qui correspond vraiment à ses besoins.

La documentation de la librairie est également une belle réussite : claire, précise et complète.

La version 1 de Mootools est disponible depuis quelques jours sur mootools.net :)

Multi-Upload en php/javascript

Ça y est ! Je viens de terminer la dernière fonctionnalité de mon CMS perso pour la prochaine version. Il s’agit d’un gestionnaire de fichiers. Le fonctionnement est plus ou moins similaire au gestionnaire de pages sauf que cette fois c’est des fichiers physiques. Par chance, j’avais déjà écrit une classe php pour gérer les fichiers physiques… sur un FTP distant. Comme je n’en ai plus besoin (les images et mon site sont chez le même hébergeur), j’ai dû écrit une nouvelle classe pour un dossier qui serait disponible localement.

Une des fonctions du gestionnaire est bien sûr de pouvoir envoyer des nouveaux fichiers. Le bût d’un CMS est normalement de pouvoir gérer tout son site via une interface web, il faut donc quelque chose d’assez ergonomique et rapide. Souvent le problème pour ce genre de fonction c’est l’upload de plusieurs fichiers. Si votre formulaire ne propose d’uploader qu’un seul fichier, cela va vite devenir chiant. Il y a bien une solution qui consiste à afficher plusieurs champs « fichier » dans la page mais nous allons être limité avec le temps d’exécution de php. Vous pourrez donc au maximum uploader que 2-3 fichiers en même temps…

Heureusement, il existe une autre solution : l’excellente classe javascript MultiUpload de Nem. Vous saisissez les fichiers à envoyer et seulement après vous validez le formulaire. Les fichiers seront envoyés un par un mais sans intervention de la part de l’utilisateur. Bien sûr, il faut toujours saisir les fichiers un par un mais ce n’est pas gênant pour une quantité raisonnable de fichiers (moins de 20).

Il reste maintenant plus que quelques petits détails ainsi que mettre à jour mes modules et je pourrais mettre à jour mon site :D

XHRConnection, pour gérer l’objet XMLHttpRequest

AJAX c’est bien mais tous les navigateurs ne gèrent pas de la même façon l’objet XMLHttpRequest. De même, selon qu’on envoie la requête en POST ou en GET les fonctions changent. Si on utilise AJAX qu’une seule fois (un petit script) ça peut aller, mais dans le cadre d’une application web, cela devient vite lourd et chiant. C’est là, qu’une classe en javascript est nécessaire…

Continuer la lecture de « XHRConnection, pour gérer l’objet XMLHttpRequest »