我期待允許某人將日記條目導出到文本文件中。我可以創建一個包含所有數據的文件,但要嚴格地將文件保存在某個特定位置,我希望允許用戶下載並將文件保存在計算機上的所需位置。如何在使用StreamWriter創建文件後強制下載文件。我目前有以下代碼:如何強制將創建的文件下載到用戶計算機c#
string fileName = "Journal.txt";
using (StreamWriter journalExport = new StreamWriter(fileName))
{
foreach (JournalEntryView entry in journalEnteries)
{
//write each journal entery to file/document
journalExport.WriteLine(entry.timestamp + " - " + entry.author + " (" + entry.authorRole + ")");
journalExport.WriteLine(entry.text);
journalExport.WriteLine("");
journalExport.WriteLine("");
}
}
我也試圖把它放入一個ActionResult並返回文件。
編輯: 下面的代碼是我的新的當前的代碼和我期待的方向走去,但是當我使用一個ActionLink的調用這個方法,我只是得到重定向到一個新的頁面,而不是下載文件。
string fileName = "Journal.txt";
string filepath = ConfigurationManager.AppSettings["DocumentRoot"] + "\\" + id + "\\" + fileName;
using (StreamWriter journalExport = new StreamWriter(filepath))
{
foreach (JournalEntryView entry in journalEnteries)
{
//write each journal entery to file/document
journalExport.WriteLine(entry.timestamp + " - " + entry.author + " (" + entry.authorRole + ")");
journalExport.WriteLine(entry.text);
journalExport.WriteLine("");
journalExport.WriteLine("");
}
}
byte[] fileData = System.IO.File.ReadAllBytes(filepath);
string contentType = MimeMapping.GetMimeMapping(filepath);
var cd = new System.Net.Mime.ContentDisposition
{
FileName = fileName,
Inline = true,
};
Response.AppendHeader("Content-Disposition", cd.ToString());
return File(fileData, contentType);
你看看'FileContentResult'和'文件()'方法? – SLaks
我有,但我不知道如何使用它們來完成我的需要 –