2011-05-25 77 views

回答

7

以下爲我工作。

型號:

public class MyViewModel 
{ 
    [Required] 
    public HttpPostedFileBase File { get; set; } 
} 

控制器:

public class HomeController : Controller 
{ 
    public ActionResult Index() 
    { 
     return View(new MyViewModel()); 
    } 

    [HttpPost] 
    public ActionResult Index(MyViewModel model) 
    { 
     if (!ModelState.IsValid) 
     { 
      return View(model); 
     } 
     var fileName = Path.GetFileName(model.File.FileName); 
     var path = Path.Combine(Server.MapPath("~/App_Data"), fileName); 
     model.File.SaveAs(path); 
     return RedirectToAction("Index"); 
    } 
} 

查看:

<% using (Html.BeginForm("Index", "Home", FormMethod.Post, new { enctype = "multipart/form-data" })) { %> 
    <input type="file" name="file" />  
    <%= Html.ValidationMessageFor(x => x.File) %> 
    <input type="submit" value="OK" /> 
<% } %> 
+0

你如何驗證特定的文件類型?我只允許'.jpg'。 – 2013-01-22 12:37:15

+1

您可以編寫自定義驗證屬性,如圖所示:http://stackoverflow.com/a/6388927/29407它將檢查上傳的文件是否爲指定類型的圖像。在我的示例中,我展示瞭如何使用PNG文件完成此操作,但您可以非常輕鬆地調整此代碼並使其更加通用,以接受任何其他圖像類型。 – 2013-01-22 12:40:16

相關問題