Bonjour,
j'aimerais pouvoir récupérer les "pièces jointes" d'un utilisateur, pour cela j'ai un updatePanel, dans lequel j'ai un repeater qui se charge de récupérer des données d'un serveur oracle (la liste des noms de fichiers de l'utilisateur).
Si l'utilisateur clique sur le bouton "voir", j'envoie au serveur l'id de la pièce jointe et le serveur m'envoie en réponse un flux de données du fichier correspondant .... Mais je n'arrive pas à récupérer ce flux en tant que fichier.
Je stocke le flux reçu par le serveur dans une "MemoryStream", et voilà le code avec lequel j'avais essayé mais sans succès :
Rien ne se passe quand je clique sur le bouton, je m'attendais à ce que le navigateur me demande si je voulais l'ouvrir ou l'enregistrer comme lors d'un download...
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18 else if (b.CommandName == "Voir") // bouton de lecture de PJ demande { string chaine = "<PJ><NumPJ>" + b.CommandArgument + "</NumPJ></PJ>"; MemoryStream m = PJ.Receive(chaine, "PJ_LECTURE"); RepeaterItem ri = b.Parent as RepeaterItem; if (ri != null) { Label l = (Label)ri.FindControl("nom"); // nom du fichier if (l != null) { Response.ContentType = "application/octet-stream"; Response.AddHeader("Content-Disposition", "attachment; filename=" + l.Text); Response.BinaryWrite(m.GetBuffer()); Response.Flush(); } } }
Merci !![]()
Partager