2 votes

Chargement dynamique d'une image dans un contrôle asp:Image

J'utilise un contrôle asp:FileUpload pour donner à l'utilisateur la possibilité de chercher une image sur le disque dur, une fois que l'utilisateur a choisi l'image, après avoir appuyé sur un bouton, je veux afficher l'image dans un contrôle asp:Image.

J'ai essayé d'obtenir le chemin complet du fichier mais je n'y arrive pas, j'utilise Path.GetFullPath(FileUpload.FileName) mais j'obtiens un chemin totalement différent, pas le chemin de l'image que l'utilisateur a sélectionnée.

J'ai lu que je devais définir l'attribut src du contrôle asp:Image pour qu'il soit une page aspx qui va renvoyer l'image, et ensuite je dois écrire les octets de l'image dans la réponse mais je ne suis pas sûr de savoir comment faire cela (je suis un débutant en développement web), je ne sais pas ce que je dois mettre dans mon événement, dans le code derrière, ou quel code je dois placer sur la page aspx qui va renvoyer l'image, ni comment appeler la page aspx avec l'image à partir du gestionnaire d'événement.

Quelqu'un peut-il me montrer un bon exemple de la manière de procéder ?

2voto

dkarzon Points 2913

Le problème est que le fichier téléchargé réside sur l'ordinateur du client alors que le contrôle asp:image recherche une image sur l'ordinateur du serveur.

Ce qu'il faut faire, c'est qu'en cliquant sur le bouton de soumission du formulaire, vous enregistrez le fichier dans le dossier de l'application, puis vous faites référence à ce fichier avec votre contrôle asp:image.

0voto

dhinesh Points 2175

Vous pouvez utiliser le projet mentionné ci-dessous pour prévisualiser l'image avant de la télécharger. Un exemple de travail est également joint.

http://www.dotnetspider.com/resources/40858-Preview-Image-before-uploading-using.aspx

Il utilise le contrôle AsyncFileUploadControl et le HTTPHandler d'AjaxControlToolKit pour télécharger l'image.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X