現在、サーバーからファイルをダウンロードするために HttpResponse を使用しています。Excel/Word ファイルをダウンロードするために既にいくつかの関数を使用していますが、単純なテキスト ファイル (.txt) をダウンロードするのに問題があります。
テキスト ファイルでは、基本的に TextBox の内容をファイルにダンプし、HttpResponse を使用してファイルをダウンロードしてから、一時テキスト ファイルを削除しようとしています。
Excel/Word ドキュメントで機能するコードの例を次に示します。
protected void linkInstructions_Click(object sender, EventArgs e)
{
String FileName = "BulkAdd_Instructions.doc";
String FilePath = Server.MapPath("~/TempFiles/BulkAdd_Instructions.doc");
System.Web.HttpResponse response = System.Web.HttpContext.Current.Response;
response.ClearContent();
response.Clear();
response.ContentType = "application/x-unknown";
response.AddHeader("Content-Disposition", "attachment; filename=" + FileName + ";");
response.TransmitFile(FilePath);
response.Flush();
response.End();
}
そして、ここに動作しないコードのチャンクがあります。
エラーをスローせずにコードが実行されることに注意してください。ファイルが作成され、削除されますが、ユーザーにダンプされることはありません。
protected void saveLog(object sender, EventArgs e)
{
string date = DateTime.Now.ToString("MM_dd_yyyy_hhmm"); // Get Date/Time
string fileName = "BulkLog_"+ date + ".txt"; // Stitch File Name + Date/Time
string logText = errorLog.Text; // Get Text from TextBox
string halfPath = "~/TempFiles/" + fileName; // Add File Name to Path
string mappedPath = Server.MapPath(halfPath); // Create Full Path
File.WriteAllText(mappedPath, logText); // Write All Text to File
System.Web.HttpResponse response = System.Web.HttpContext.Current.Response;
response.ClearContent();
response.Clear();
response.ContentType = "text/plain";
response.AddHeader("Content-Disposition", "attachment; filename=" + fileName);
response.TransmitFile(mappedPath); // Transmit File
response.Flush();
System.IO.File.Delete(mappedPath); // Delete Temporary Log
response.End();
}