1. ホーム
  2. c#

[解決済み] ファイルアップロード ASP.NET MVC 3.0

2022-03-18 13:01:26

質問

(前置き:この質問はASP.NET MVC 3.0に関するものです。 2011年にリリースされた に関するものではありません。 ASP.NET Core 3.0 2019年にリリースされたもの)

asp.net mvcでファイルをアップロードしたいのですが、どうすればいいですか?どのように私はhtmlを使用してファイルをアップロードすることができます input file のコントロールが必要ですか?

どのように解決するのですか?

ファイル入力コントロールを使っていない。ASP.NET MVCでは、サーバーサイドコントロールは使用しません。を調べてみてください。 以下のブログ記事 ASP.NET MVCでこれを実現する方法を説明しています。

そこで、まずファイル入力を含むHTMLフォームを作成します。

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

を作成し、アップロードを処理するコントローラを用意することになります。

public class HomeController : Controller
{
    // This action renders the form
    public ActionResult Index()
    {
        return View();
    }

    // This action handles the form POST and the upload
    [HttpPost]
    public ActionResult Index(HttpPostedFileBase file)
    {
        // Verify that the user selected a file
        if (file != null && file.ContentLength > 0) 
        {
            // extract only the filename
            var fileName = Path.GetFileName(file.FileName);
            // store the file inside ~/App_Data/uploads folder
            var path = Path.Combine(Server.MapPath("~/App_Data/uploads"), fileName);
            file.SaveAs(path);
        }
        // redirect back to the index action to show the form once again
        return RedirectToAction("Index");        
    }
}