在一个.net网站项目中,我有一个csv文件(位于项目的app_data文件夹中),我在用户点击按钮后写了数据。现在我想打开文件并向用户显示内容(就像他在windows shell中点击它一样),这样用户就可以检查数据并将文件保存到他想要的文件夹中。我怎么能做到这一点?
答案 0 :(得分:3)
为什么您希望服务器能够在客户端上打开文件?使用关联的shell处理程序打开任意文件将是一个很大的安全漏洞。
您可以将数据显示为网站的一部分,然后提供下载。
答案 1 :(得分:0)
有必要将服务器响应重定向到csv文件。
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();
}
客户端收到该文件,可以打开并编辑它。