2010-09-23 22 views
1

Je télécharge une image avec AsyncFileUpload, cela fonctionne bien, mais je veux montrer à l'utilisateur l'image qu'il vient de télécharger, mais j'ai des problèmes pour que cela fonctionne.Mettre à jour l'image du client après le téléchargement avec AsyncFileUpload Control dans AjaxControlToolkit

J'ai essayé l'événement OnClientUploadComplete qui reçoit les paramètres d'expéditeur et d'args, mais le second n'a que le nom de fichier (sans URL relative), la longueur, mais pas le nom de fichier enregistré sur le serveur. J'ai également essayé ScriptManager.RegisterClientScriptBlock et appelez ma propre fonction afin de passer l'url, mais pour une raison quelconque, je ne peux pas sélectionner le contrôle img avec jquery, semble que cette paix de code s'exécute dans une autre instance de la page ... pas sûr.

S'il vous plaît, si quelqu'un a une solution ou une suggestion, j'apprécie votre réponse.

Merci d'avance.

Répondre

0

Mettre le même contrôle de AsyncFileUpload dans les div ou invisible ajouter les attributs suivants à la balise de votre page:

enctype="multipart/form-data" method="post" 
0

Le script exécute l'intérieur d'un iframe, vous devez localiser le contrôle à l'aide top.getElementById (

0

J'ai le même problème lorsque je dois générer un nouveau nom de fichier lors du téléchargement/de l'enregistrement du fichier côté serveur. Ce que j'ai fait pour résoudre ceci est enregistrer le nouveau nom de fichier généré dans le stockage côté serveur auquel le côté client peut accéder, viewstate de la page ne fonctionne pas, donc vous pouvez utiliser Session avec le nom de clé comme CustomerID.

ensuite obtenir le nom de fichier généré à partir de côté client, vous pouvez utiliser rappeler à la même session et obtenir le nom du fichier, puis appliquez au contrôle de l'image

$('image').attr('src','displayimage.aspx?fileName=' + filename); 

pour obtenir le flux de fichier image et l'afficher. Un peu difficile mais ça marche.