Mvc文件流

时间:2011-03-12 18:15:21

标签: asp.net-mvc file-upload stream download

当我在Controller中返回fileStrem时,是否可以知道用户收到了多少数据?

2 个答案:

答案 0 :(得分:0)

如果您使用HttpPostedFileBase.InputStream而不是HttpPostedFileBase.SaveAs()并手动保存输入流中的文件,则可以获得上传进度。

答案 1 :(得分:0)

您的问题很难理解,但如果您想在控制器操作中获取上传文件的大小,可以使用ContentLength属性:

[HttpPost]
public ActionResult Upload(HttpPostedFileBase file) 
{
    if (file != null && file.ContentLength > 0) 
    {
        // get the size of the file
        int size = file.ContentLength;
        // TODO: do something with the size

        // Saving the uploaded file
        var fileName = Path.GetFileName(file.FileName);
        var path = Path.Combine(Server.MapPath("~/App_Data"), fileName);
        file.SaveAs(path);
    }
    return RedirectToAction("Index");
}

另一方面,如果您的控制器操作是将一些文件传输到客户端:

public ActionResult Download() 
{
    return File("foo.pdf", "text/pdf");
}