Asp.net ajax : updatepanel et fileupload

Soyez le premier à donner votre avis sur cette source.

Vue 32 918 fois - Téléchargée 2 224 fois

Description

Pour des raisons de sécurité, le contrôle FileUpload ne fonctionne pas à l'intérieur d'un UpdatePanel. En effet l'UpdatePanel fait ses requêtes de mis à jour partiel en utilisant XmlHttpRequest et l'on ne peut pas envoyer de fichier via cet objet.

Ce code rend possible l'utilisation d'un FileUpload à l'intérieur d'un UpdatePanel, pour cela j'ai créer un nouveau contrôle qui hérite de FileUpload ainsi qu'un HttpModule qui modifie directement le flux de la réponse http. On peut utiliser le classique contrôle FileUpload, l'utilisation d'un tagmapping configuré au niveau du web.config remplace le classique FileUpload par mon FileUpload.

Conclusion :


Ceci est un prototype, il doit surement se cacher de nombreux bugs.

Dans le zip, il y a 2 projets : un projet qui contient le FileUpload et un autre qui contient une website de test. Pour l'instant le controle UpdateProgress ne fonctionnera pas si vous utiliser un FileUpload dans votre page.

Codes Sources

A voir également

Ajouter un commentaire

Commentaires

Luc_arne2
Messages postés
2
Date d'inscription
mardi 22 mai 2007
Statut
Membre
Dernière intervention
22 mai 2007
-
Bonjour,

Il me semble qu'il y une façon plus simple de faire celà.
Il suffit d'enregistrer un trigger dans l'updatepanel et de dire que l'on veut un postabck synchrone.

Voir le lien ci-contre pour plus de détail:

http://mobiledeveloper.wordpress.com/2007/05/15/file-upload-with-aspnet-ajax-updatepanel/

Salutations
jesusonline
Messages postés
6827
Date d'inscription
dimanche 15 décembre 2002
Statut
Modérateur
Dernière intervention
13 octobre 2010
16 -
Bonjour,

Je pense que tu n'as pas compris l'interet de cette source, c'est justement d'uploader un fichier sans faire un classique postback, sans rafraichir toute la page. Le lien que tu me donne permet seulement de ne pas faire de requete Ajax avec un FileUpload mais un classique postback.

Pour plus d'information regarde ici : http://blogs.codes-sources.com/cyril/archive/2007/05/06/ajax-et-upload-part-2-utilisation-d-un-updatepanel-et-d-un-fileupload.aspx
necnec
Messages postés
8
Date d'inscription
samedi 19 juin 2004
Statut
Membre
Dernière intervention
6 décembre 2007
-
j'ai testé ton code mais j'ai une erreur de
ligne 69 if (HttpContext.Current.Items[typeof(FileUpload)] == null)
+ $exception {"La référence d'objet n'est pas définie à une instance d'un objet."} System.Exception {System.NullReferenceException}
jesusonline
Messages postés
6827
Date d'inscription
dimanche 15 décembre 2002
Statut
Modérateur
Dernière intervention
13 octobre 2010
16 -
Je n'ai aucune idée d'ou peut venir l'erreur :s mais attention comme je l'ai déjà dit ce code est vraiment à prendre avec les pincettes et il faut bien le comprendre avant de l'utiliser.

Arrives tu à reproduire l'erreur ? si oui dans quelle situations se produit l'erreur ?

Sinon on (peut etre toi) m'a récemment montré http://www.jeffzon.net/Blog/page/Released-Components.aspx, peut etre que ca t'interessera (je n'ai pas testé le code)
cs_Samir63
Messages postés
3
Date d'inscription
mardi 13 février 2007
Statut
Membre
Dernière intervention
6 juillet 2008
-
J'ai installé votre exemple, et j'ai la même erreur, peut tu voir (La référence d'objet n'est pas définie à une instance d'un objet) ?

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.