我需要在我的View中实现下载按钮,当用户点击我需要从数据库中读取一些记录创建文件并下载。
var stream = new MemoryStream();
stream.Position = 0;
var response = new HttpResponseMessage(HttpStatusCode.OK);
response.Content = new StreamContent(stream);
return response;
这是我现在的代码,但我不知道如何写一些数据以及如何转换为txt文件。
我是否需要先创建它并存储在服务器上,这里只是为了阅读它?
答案 0 :(得分:0)
您需要在从api返回之前创建txt文件。您可以查看here如何创建txt文件。
这是返回流的方法。
var path = @"C:\YourFile.txt";
HttpResponseMessage result = new HttpResponseMessage(HttpStatusCode.OK);
var stream = new FileStream(path, FileMode.Open);
result.Content = new StreamContent(stream);
result.Content.Headers.ContentType =
new MediaTypeHeaderValue("application/octet-stream");
result.Content.Headers.ContentDisposition = new ContentDispositionHeaderValue("attachment");
result.Content.Headers.ContentDisposition.FileName = Path.GetFileName(path);
result.Content.Headers.ContentLength = stream.Length;
return result;