FileStream操作写入空文件
本文关键字:文件 操作 FileStream | 更新日期: 2023-09-27 18:30:10
我有一个ASP.Net MVC 4应用程序正在下载一个空文件。我错过了什么?
控制器:
public class HomeController : Controller
{
public ActionResult Index()
{
return View();
}
public FileStreamResult ICS()
{
var memoryStream = new MemoryStream();
StreamWriter sw = new StreamWriter(memoryStream);
sw.WriteLine(@"BEGIN:VCALENDAR");
sw.WriteLine(@"VERSION:2.0");
sw.WriteLine(@"PRODID:-//www.marudot.com//iCal Event Maker");
sw.WriteLine(@"BEGIN:VEVENT");
sw.WriteLine(@"DTSTAMP:20141111T165545Z");
sw.WriteLine(@"UID:20141111T165545Z-1194755835@marudot.com");
sw.WriteLine(@"DTSTART;TZID=""America/Chicago"":20141114T080000");
sw.WriteLine(@"DTEND;TZID=""America/Chicago"":20141114T120000");
sw.WriteLine(@"SUMMARY:Bobby's Big Bash");
sw.WriteLine(@"DESCRIPTION:test");
sw.WriteLine(@"LOCATION:test");
sw.WriteLine(@"END:VEVENT");
sw.WriteLine(@"END:VCALENDAR");
sw.Flush();
return new FileStreamResult(memoryStream, "text/calendar") { FileDownloadName = "test.ics" };
}
}
视图:
<h2>Index</h2>
@Html.ActionLink("ical event", "ICS");
单击链接下载一个空的ICS文件。
只是猜测-在下载文件之前,MemoryStream已经超出了范围。也许看看当您将内容写入实际文件,然后重新读取该文件时会发生什么。Path.GetTempFileName();
对于写出临时文件可能很有用。