Предложите пользователю сохранить / открыть файл в ASP.NET C #
Не должно быть так сложно узнать, как это сделать. По сути, я пытаюсь взять строку и позволить клиенту сохранить ее при нажатии кнопки. Должно появиться диалоговое окно Сохранить / Открыть. Никаких дополнительных наворотов или чего-то еще. Это не ракетостроение (или я так думал).
Кажется, существует множество разных способов (StreamWriter, HttpResponse и т. Д.), Но ни один из примеров, которым я не смог найти работу должным образом или объяснить, что происходит. Заранее спасибо.
Пример одного из множества блоков кода, который я обнаружил ...
(Это всего лишь пример, не стесняйтесь основывать свой ответ на этом.)
String FileName = "FileName.txt";
String FilePath = "C:/...."; //Replace this
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(FilePath);
response.Flush();
response.End();
Строка 2 говорит, чтобы заменить эту строку. Как? Этот код был объявлен как поднимающий диалог. Мне не нужно указывать путь в коде, верно?
РЕДАКТИРОВАТЬ: Окончательный результат (отредактировано снова, удаление должно быть до End ();)
string FilePath = Server.MapPath("~/Temp/");
string FileName = "test.txt";
// Creates the file on server
File.WriteAllText(FilePath + FileName, "hello");
// Prompts user to save 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(FilePath + FileName);
response.Flush();
// Deletes the file on server
File.Delete(FilePath + FileName);
response.End();