1. ホーム
  2. asp.net-mvc

[解決済み】MVC 4 Razor ファイルアップロード

2022-04-07 06:44:06

質問

私はMVC 4の初心者で、ファイルアップロードコントロールを実装しようとしています。 私のウェブサイト 私はミスを見つけることができません。 の値を入力する必要があります。

コントローラーです。

public class UploadController : BaseController
    {
        public ActionResult UploadDocument()
        {
            return View();
        }

       [HttpPost]
       public ActionResult Upload(HttpPostedFileBase file)
       {
           if (file != null && file.ContentLength > 0)
           {
               var fileName = Path.GetFileName(file.FileName);
               var path = Path.Combine(Server.MapPath("~/Images/"), fileName);
               file.SaveAs(path);
           }

           return RedirectToAction("UploadDocument");
        }
    }

表示します。

@using (Html.BeginForm("Upload", "Upload", FormMethod.Post, new { enctype = "multipart/form-data" }))
{ 
    <input type="file" name="FileUpload" />
    <input type="submit" name="Submit" id="Submit" value="Upload" />
}

解決方法は?

その Upload メソッドの HttpPostedFileBase パラメータと同じ名前でなければなりません。 file input .

だから、入力をこう変えればいいんだ。

<input type="file" name="file" />

また、ファイルを Request.Files :

[HttpPost]
public ActionResult Upload()
{
     if (Request.Files.Count > 0)
     {
         var file = Request.Files[0];

         if (file != null && file.ContentLength > 0)
         {
            var fileName = Path.GetFileName(file.FileName);
            var path = Path.Combine(Server.MapPath("~/Images/"), fileName);
            file.SaveAs(path);
         }
     }

     return RedirectToAction("UploadDocument");
 }