如何创建ASP.NET MVC控制器操作以便它们接受文件?

时间:2009-12-14 18:03:02

标签: asp.net-mvc file upload file-upload messaging

我整个周末都在为我的网站使用Messaging系统,因此用户可以在我的网站上发送和接收消息。

我已经制定了我的表模式,现在我可以向不同的用户发送基本信息。

现在,我正在处理附件部分。

如何创建我的操作方法以便他们接受文件?理想情况下,我想允许一个接受任意数量文件的控制器操作。一旦它们被传递到控制器动作,我将把它们保存在我的网络服务器上。

有人能告诉我一个控制器动作的例子,它接受文件作为参数的一部分吗?

4 个答案:

答案 0 :(得分:3)

(省略错误处理。)

    [AcceptVerbs(HttpVerbs.Post)]
    public ActionResult FilePost()
    {
        for (var i = 0; i < Request.Files.Count; i++)
        {
            var filebase = Request.Files.Get(i);
            string filePath = Server.MapPath(Url.Content("~/Content/UserContent/"));
            var fileName = // whatever
            filebase.SaveAs(Path.Combine(filePath, fileName));
         }

        return RedirectToAction("Something");
    }

答案 1 :(得分:2)

我相信您正在寻找的对象是Request.Files示例摘录。

foreach (string file in Request.Files) {
    var hpf = Request.Files[file];

    if (hpf.ContentLength == 0)
        continue;

    myFileEntity.ContentType = hpf.ContentType;
    myFileEntity.File = hpf.InputStream.ToByteArray();
    myFileEntity.FileName = hpf.FileName;
}

答案 2 :(得分:2)

以下是关于如何Upload file with ASP.NET MVC

的帖子

答案 3 :(得分:0)

在这篇文章中查看我的答案。

Having troubles calling a controller post method