Razor Pages でファイルをアップロードするコードについてはこちらの記事も参照してください。
@page
@model FileUpload.Pages.none_enctypeModel
@addTagHelper *, Microsoft.AspNetCore.Mvc.TagHelpers
@{
}
<html>
<head>
</head>
<body>
<form method="post">
<div>ファイルのアップロード<input type="file" asp-for="FileData" /></div>
<input type="submit" value="POST" />
</form>
</body>
</html>
using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
using Microsoft.AspNetCore.Mvc;
using Microsoft.AspNetCore.Mvc.RazorPages;
using Microsoft.AspNetCore.Http;
namespace FileUpload.Pages
{
public class none_enctypeModel : PageModel
{
[BindProperty]
public IFormFile FileData { get; set; }
public void OnGet()
{
}
public IActionResult OnPost()
{
System.IO.Stream stream = FileData.OpenReadStream();
byte[] buffer = new byte[stream.Length];
stream.Read(buffer, 0, (int)stream.Length);
System.IO.FileStream fs = new System.IO.FileStream(FileData.FileName, System.IO.FileMode.CreateNew);
fs.Write(buffer, 0, buffer.Length);
fs.Close();
stream.Close();
return RedirectToPage("/simple-upload-complete");
}
}
}
<form method="post" enctype="multipart/form-data" >
<div>ファイルのアップロード<input type="file" asp-for="FileData" /></div>
<input type="submit" value="POST" />
</form>
<form method="post">
<div>ファイルのアップロード<input type="file" asp-for="FileData" /></div>
<input type="submit" value="POST" />
</form>
@page
@model FileUpload.Pages.none_enctypeModel
@addTagHelper *, Microsoft.AspNetCore.Mvc.TagHelpers
@{
}
<html>
<head>
</head>
<body>
<form method="post" enctype="multipart/form-data">
<div>ファイルのアップロード<input type="file" asp-for="FileData" /></div>
<input type="submit" value="POST" />
</form>
</body>
</html>
using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
using Microsoft.AspNetCore.Mvc;
using Microsoft.AspNetCore.Mvc.RazorPages;
using Microsoft.AspNetCore.Http;
namespace FileUpload.Pages
{
public class none_enctypeModel : PageModel
{
public IFormFile FileData;
public void OnGet()
{
}
public IActionResult OnPost()
{
System.IO.Stream stream = FileData.OpenReadStream();
byte[] buffer = new byte[stream.Length];
stream.Read(buffer, 0, (int)stream.Length);
System.IO.FileStream fs = new System.IO.FileStream(FileData.FileName, System.IO.FileMode.CreateNew);
fs.Write(buffer, 0, buffer.Length);
fs.Close();
stream.Close();
return RedirectToPage("/simple-upload-complete");
}
}
}
public IFormFile FileData;
[BindProperty]
public IFormFile FileData { get; set; }
enctype="multipart/form-data"
が指定されており、
ページモデルオブジェクトもFileDataはプロパティとして宣言されています。ただし、BindProperty 属性が指定されていません。@page
@model FileUpload.Pages.none_enctypeModel
@addTagHelper *, Microsoft.AspNetCore.Mvc.TagHelpers
@{
}
<html>
<head>
</head>
<body>
<form method="post" enctype="multipart/form-data">
<div>ファイルのアップロード<input type="file" asp-for="FileData" /></div>
<input type="submit" value="POST" />
</form>
</body>
</html>
using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
using Microsoft.AspNetCore.Mvc;
using Microsoft.AspNetCore.Mvc.RazorPages;
using Microsoft.AspNetCore.Http;
namespace FileUpload.Pages
{
public class none_enctypeModel : PageModel
{
public IFormFile FileData { get; set; }
public void OnGet()
{
}
public IActionResult OnPost()
{
System.IO.Stream stream = FileData.OpenReadStream();
byte[] buffer = new byte[stream.Length];
stream.Read(buffer, 0, (int)stream.Length);
System.IO.FileStream fs = new System.IO.FileStream(FileData.FileName, System.IO.FileMode.CreateNew);
fs.Write(buffer, 0, buffer.Length);
fs.Close();
stream.Close();
return RedirectToPage("/simple-upload-complete");
}
}
}
public IFormFile FileData { get; set; }
[BindProperty]
public IFormFile FileData { get; set; }