ASP.NET Coreでファイルをアップロードする
ViewModelにIFormFile型のプロパティを用意する。
using Microsoft.AspNetCore.Http; namespace MyApp.ViewModels.UploadFile { public class UploadFileViewModel { public IFormFile SelectedFile { get; set; } } }
View側でアップロードするファイルを選択するFormを用意する。
<form method="post" asp-action="upload" enctype="multipart/form-data"> <div class="form-group row"> <div class="col-8"> <div class="custom-file"> <input asp-for="SelectedFile" class="form-control custom-file-input" /> <label class="custom-file-label">成績ファイルを選択してください</label> </div> </div> </div> <div class="form-group row"> <div class="col-8"> <button class="btn float-right">読み込み</button> </div> </div> </form>
ControllerにActionメソッドを用意する。
[HttpPost] public IActionResult Upload(UploadFileViewModel model) { //ここでなにかする return View(); }
これでUpload
アクションメソッドのパラメータのmodel
にPostされたデータ(ファイル)が渡されるので、これをFileStreamでサーバー上に保存したりなんかしたり。
動作確認していないので上のコードが動くかわからない。けれど、こういう感じ。