upload avec Ajax
L'upload via une application Web n'est jamais une chose joli, dans beaucoup des cas on envoie le fichier en même temps que le formulaire de la page, ce qui pour effet de faire une nouvelle requete sur toute la page. En plus on est jamais sûr que le transfert se passe vraiment correctement, etc ...
Bon, si c'est que ca, on peut très bien imaginer, que javascript va s'en occuper En effet depuis qu'on a découvert que javascript savait faire des requêtes (AJAX) on en met de partout ;). Oui ! Ajax est la solution, mais comment envoyer des données par Ajax ?
La solution se trouve dans cet excellent article : http://robloche.free.fr/javascript/tuto_xhr/tuto_xhr.html#section_04 (qui est pour moi le meilleur des articles sur ajax) on voit donc que l'on peut facilement t transmettre des données via la méthode POST par Ajax.
Le problème c'est qu'on NE PEUT PAS avoir le contenu du fichier selectionné, nous voila donc pas très avancé :(
Heureusement, certaines personnes se creusent la tête ;)
La solution http://sean.treadway.info/demo/upload (allez essayer c'est super ;))
J'ai pas encore regardé en détails comment il fait cela, mais la solution passe par une iframe pour envoyer le flux, et ensuite pour savoir l'etat de l'avancement, c'est des requetes Ajax qui demandent au serveur ou en est l'upload. En simplifié, lorsque vous cliquez sur le bouton "envoyer" vous envoyer le formulaire contenu dans une iframe, le serveur commence à recevoir le fichier, et en même temps, javascript fait des reqêtes à intervalle régulier pour savoir ou est l'avancement du transfert.
Sympathique non ?
Vous pouvez aussi me dire, qu'envoyer un fichier à la fois c'est pas trés rapide ...
Alors regarder ici : http://the-stickman.com/web-development/javascript/upload-multiple-files-with-a-single-file-element/