Reputation: 8150
In a .net website project, I have a csv-file (located in app_data folder of the project) to which I write data after user has clicked a button. Now I want to open the file and display the content to the user (like it would happen if he clicked on it in the windows shell), so that user can check data and save the file to the folder he wants. How can I accomplish that?
Upvotes: 0
Views: 763
Reputation: 8150
It is necessary to redirect the server response to the csv-file.
string path = context.Server.MapPath(String.Format(@"~/App_Data/" + csvFile));
using (FileStream fs = new FileStream(path, FileMode.Open))
{
long FileSize = fs.Length;
byte[] Buffer = new byte[(int)FileSize];
fs.Read(Buffer, 0, (int)FileSize);
Response.Clear();
Response.AddHeader("Content-Disposition", "attachment;filename=Export.csv");
Response.ContentType = "text/csv";
Response.BinaryWrite(Buffer);
Response.Flush();
}
The client receives the file and can open and edit it.
Upvotes: 0
Reputation: 108790
Why do you expect that the server is able to open a file on the client? Opening an arbitrary file with the associated shell handler would be a big security hole.
You can display the data as part of your website and then offer a download.
Upvotes: 3