Je dois écrire quelques rapports et demander à l'utilisateur de l'enregistrer sur sa machine locale. La dernière fois que j'ai fait cela, j'ai écrit un fichier sur le serveur Web, puis l'a envoyé au client via l'objet Response
.C# Asp.net écrire le fichier au client
pour créer sur le serveur Web
TextWriter tw = new StreamWriter(filePath);
envoyer au client
page.Response.WriteFile(path);
La question est, est-il possible d'ignorer l'écriture du fichier physique au serveur Web et allez à droite de un objet qui représente le document à la réponse?
ce code écrit dans mon navigateur. Je n'ai pas d'invite. IReport rpt = new ContxReport(); rapport de chaînes = rpt.makeReport(); ASCIIEncoding encoding = new ASCIIEncoding(); byte [] encodedReport = encoding.GetBytes (rapport); Réponse.ContentType = "text/plain"; Response.OutputStream.Write (encodedReport, 0, encodedReport.Length); Response.AddHeader ("Content-Disposition", "inline; filename = shit.csv"); Response.End(); – jim
En outre, vous devez définir tous les en-têtes avant d'écrire. – Talljoe
Qu'est-ce que *** buffer ***? – Kiquenet