ファイルアップロード内容
- Views/Move/Upload.cshtmlでファイルを選択する
- アップロードボタンをクリックするとダウンロード画面へ遷移する
作成物
- Views/Move/Upload.cshtmlを修正して、アップロード用のフォームを作成
- Controllers/UploadControllers.csを作成して、フォームからファイルを受け取ってセッションに格納
- Views/Upload/Download.cshtmlを作成して、画面遷移する
コード
Views/Move/Upload.cshtml(修正)
@*
For more information on enabling MVC for empty projects, visit https://go.microsoft.com/fwlink/?LinkID=397860
*@
@{
}
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<title>upload</title>
</head>
<body>
@* 追加 開始*@
@using (Html.BeginForm("Download","Upload", FormMethod.Post, new { enctype = "multipart/form-data" }))
{
<input type="file" name="uploadedFile" />
<input type="submit" value="アップロード" />
}
@* 追加 終了*@
</body>
</html>
Controllers/UploadControllers.cs(新規)
using Microsoft.AspNetCore.Mvc;
using Microsoft.AspNetCore.Http;
using System.IO;
namespace FileUploadDownload.Controllers
{
public class UploadController : Controller
{
public IActionResult Download(IFormFile uploadedFile)
{
if (uploadedFile == null) return View();
string fileName = uploadedFile.FileName;
using (var uploadedStream = uploadedFile.OpenReadStream())
using (var sessionStream = new MemoryStream())
{
uploadedStream.CopyTo(sessionStream);
HttpContext.Session.SetString("fileName", fileName);
HttpContext.Session.Set("uploadedStream", sessionStream.ToArray());
}
return View();
}
}
}
Views/Upload/Download.cshtml(新規)
@*
For more information on enabling MVC for empty projects, visit https://go.microsoft.com/fwlink/?LinkID=397860
*@
@{
}
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<title>ダウンロード</title>
</head>
<body>
hello
</body>
</html>