问题的第一部分:
我在DB中有信息,我想从db获取它并将其作为.txt
文件保存到客户端。
我使用Regular asp.net完成了它。但在mvc还没有。我的信息不是图像。关于人民的这些信息
我看了This site
问题的第二部分:
我想将文件下载到客户端。下载一个文件时没有问题,但是我想用1个请求一次下载3个文件。但它无法完成。所以我决定创建zip文件并生成链接。当用户点击链接时,它将下载给用户。
你怎么想?用这种方式做到这一点好吗?问题的第三部分:(新)
如何在成功下载后从目录中删除旧的.zip文件?或另一种方式。让我们说服务将在服务器上运行。
答案 0 :(得分:13)
您可以执行以下控制器操作,该操作将从数据库中获取信息并将其写入响应流,以允许客户端下载它:
public ActionResult Download()
{
string info = Repository.GetInfoFromDatabase();
byte[] data = Encoding.UTF8.GetBytes(info);
return File(data, "text/plain", "foo.txt");
}
并在您的视图中提供指向此操作的链接:
<%= Html.ActionLink("Downoad file", "Download") %>
答案 1 :(得分:3)
您可以删除使用此类操作过滤器返回的临时文件。然后将该属性应用于MVC操作方法。
public class DeleteTempFileResultFilter : ActionFilterAttribute
{
public override void OnResultExecuted(ResultExecutedContext filterContext)
{
string fileName = ((FilePathResult)filterContext.Result).FileName;
filterContext.HttpContext.Response.Flush();
filterContext.HttpContext.Response.End();
System.IO.File.Delete(fileName);
}
}