Suggest filename to client when you generate it at runtime

Many times I’ve to generate a report file from a web pages.
To do this I create a genericHandler that query the Database and compose a string comma separated.

context.Response.ContentType = "text/csv";

with only this code you generated a csv file but no filename will be passed to the client.
To achieve this add the code below before call Flush() method

string fileName = "DataExport.csv";

string contentDisposition;
if (context.Request.Browser.Browser == "IE" && (context.Request.Browser.Version == "7.0" || context.Request.Browser.Version == "8.0"))
    contentDisposition = "attachment; filename=" + Uri.EscapeDataString(fileName);
else if (context.Request.Browser.Browser == "Safari")
    contentDisposition = "attachment; filename=" + fileName;
    contentDisposition = "attachment; filename*=UTF-8''" + Uri.EscapeDataString(fileName);

context.Response.AddHeader("Content-Disposition", contentDisposition);

Informazioni su Andrea Regoli

Project Manager .Net Developer WPF WP7 Asp.Net c# javascript ajax SQL sharepoint
Questa voce è stata pubblicata in .Net, Asp.Net, c# e contrassegnata con , , , , . Contrassegna il permalink.


Inserisci i tuoi dati qui sotto o clicca su un'icona per effettuare l'accesso:


Stai commentando usando il tuo account Chiudi sessione /  Modifica )

Google+ photo

Stai commentando usando il tuo account Google+. Chiudi sessione /  Modifica )

Foto Twitter

Stai commentando usando il tuo account Twitter. Chiudi sessione /  Modifica )

Foto di Facebook

Stai commentando usando il tuo account Facebook. Chiudi sessione /  Modifica )


Connessione a %s...

This site uses Akismet to reduce spam. Learn how your comment data is processed.