Bienvenue à Blogs CodeS-SourceS Identification | Inscription | Aide

Atteint de JavaScriptite Aiguë [Cyril Durand]

Expert ASP.net Ajax et WCF, Cyril Durand parle dans son blog de point techniques sur ASP.net, ASP.net Ajax, JavaScript, WCF et .net en général. Cyril est également consultant indépendant, n'hésitez pas à le contacter pour de l'assistance sur vos projets

Actualités

  • Blog de Cyril DURAND, passionné de JavaScript, Ajax, ASP.net et tout ce qui touche au developpement Web Client-Side.

    N'hésitez pas à me contacter pour vos projets .net : architecture, accompagnement, formation, ...

    View Cyril Durand's profile on LinkedIn
    hit counters


    Expertise Commerce server et BizTalk

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/

Posted: samedi 1 octobre 2005 17:39 par cyril
Ce post vous a plu ? Ajoutez le dans vos favoris pour ne pas perdre de temps à le retrouver le jour où vous en aurez besoin :

Commentaires

cyril a dit :

pas mal !!
la seule chose qui gène un peu c'est l'iframe...
mais bon...tant que ça marche :d
# octobre 1, 2005 18:25

cyril a dit :

J'ai pas encore pris le temps d'analyser le code, mais on doit surement pouvoir arriver à écrire l'iframe en javascript. (pour des raisons d'accessibilité)
# octobre 1, 2005 18:32

cyril a dit :

j'aime bien... je pense que ca va me servir ;)
# octobre 1, 2005 20:02

cyril a dit :

C'est top !!!!!
J'ai vite fait regarder, il me semble que l'iframe n'est là que pour l'effet k2000 pendant le chargement du fichier, ce n'est pas elle qui fait le chargement.
C'est vraiment top ce truc.
Les sources, c'et du ruby...
Cyril, es tu déjà en train de préparer la version .Net ?

TiK
# octobre 2, 2005 10:26

cyril a dit :

Evidemment que je vais regarder pour faire la version .net :p

Mais je sais pas si je vais mettre le control en standalone ou alors avec le reste de mon framework :) donc faut pas etre pressé :p
# octobre 2, 2005 11:07

cyril a dit :

bon courage... moi je bloque sur le serveur qui récupère les informations du fichier, je sais intercepter le début de la réception et la fin, mets entre les deux, nada !

toute aide serait bienvenue
# octobre 3, 2005 10:31

cyril a dit :

Yep, je pense aussi que c'est la partie la plus difficile :(

car l'instance de la page est créer une fois la requete receptionné donc trop tard :s faudrais regarder du coté des httpmodule je pense, en tout cas faudra taper vachement bas dans asp.net

et je ne sais pas exactement qui receptionne la requete ...

mais si quelqu'un sait/trouve comment avoir l'avancement du fichier, ce serait cool :)
# octobre 3, 2005 10:45

cyril a dit :

Pour répondre à nurgle, l'iframe sert à envoyer le fichier.

En fait (merci Aurélien ;)) il y a un target sur le form qui fait que lorsqu'on submit le formulaire on envoie la réquete dans l'iframe, en meme temps on fait plein de petite requete sur une autre page pour savoir l'avancement, et entre les 2 pages il y a une variable session qui circule.
# octobre 3, 2005 18:25
Les commentaires anonymes sont désactivés

Les 10 derniers blogs postés

- MBA : Pourquoi faire et comment le choisir ? par Blog Technique de Romelard Fabrice le il y a 15 heures et 51 minutes

- Y'a des erreurs qui peuvent rendre le développeur violent par Aleks's Blog le 02-02-2012, 16:33

- [Hyper-V 3] Présentation des commandlets PowerShell par Blog de SPBrouillet (Pierrick BROUILLET) le 01-31-2012, 16:01

- IIS7 – Compression GZIP par Atteint de JavaScriptite Aiguë [Cyril Durand] le 01-31-2012, 15:52

- SharePoint 15 Technical Preview Managed Object Model Software Development Kit par Matthew le 01-31-2012, 12:34

- Office 15 Technical Preview - Open specification Update par Matthew le 01-31-2012, 10:14

- TFS Integration Tools – Installation par Vivien Fabing le 01-31-2012, 00:06

- Test par RonnyK le 01-30-2012, 16:56

- [SharePoint 2010] Désactiver le correcteur orthographique dans les pages d’un site de publication par Jean-Christophe Brabant le 01-30-2012, 09:30

- [SharePoint 2010] Site internet et performances : poids et nombre des ressources par Arnault Nouvel le 01-30-2012, 00:52