본 글의 예시에서는 참고용으로 단일 파일 업로드와 다중 파일 업로드 기능을 공유하고 있습니다. 구체적인 내용은 다음과 같습니다.
단일 파일 업로드
파일 업로드는 웹 애플리케이션에서 흔히 사용되는 기능입니다. . asp.net 코어에 파일을 업로드하고 서버에 저장하는 것은 매우 쉽습니다. ASP.NET Core 프로젝트에서 파일을 업로드하는 방법을 보여드리겠습니다.
먼저 asp.net 코어 프로젝트를 생성한 후 Controller 파일에 HomeController를 추가하고 Views 폴더의 Home 폴더에 New.cshtml 뷰 파일을 추가합니다. 아래와 같이
Model 폴더에 UserViewModel.cs를 추가합니다. 코드는 다음과 같습니다.
public class UserViewModel { [Required] [Display(Name = "姓名")] public string Name { get; set; } [Required] [Display(Name = "身份证")] [RegularExpression(@"^(\d{15}$|^\d{18}$|^\d{17}(\d|X|x))$", ErrorMessage = "身份证号不合法")] public string IdNum { get; set; } public string IdCardImgName { get; set; } [Required] [Display(Name = "身份证附件")] [FileExtensions(Extensions = ".jpg,.png", ErrorMessage = "图片格式错误")] public IFormFile IdCardImg { get; set; } }
그런 다음 Views 폴더에 New.cshtml 뷰 파일을 추가하세요:
@model UserViewModel <form asp-controller="Home" role="form" asp-action="New" enctype="multipart/form-data" method="post"> <div class="form-group"> <label asp-for="Name"></label> <input type="text" class="form-control" asp-for="Name" /> </div> <div class="form-group"> <label asp-for="IdNum"></label> <input type="text" class="form-control" asp-for="IdNum" /> </div> <div class="form-group"> <label asp-for="IdCardImg"></label> <input type="file" asp-for="IdCardImg" /> <p class="help-block">上传。</p> </div> <button type="submit" class="btn btn-default">提交</button> </form>
HomeController에서 페이지에 해당하는 Action 메서드를 추가하세요:
[HttpPost] public IActionResult New([FromServices]IHostingEnvironment env, [FromServices]AppDbContext dbContext, UserViewModel user) { var fileName = Path.Combine("upload", DateTime.Now.ToString("MMddHHmmss") + ".jpg"); using (var stream = new FileStream(Path.Combine(env.WebRootPath, fileName), FileMode.CreateNew)) { user.IdCardImg.CopyTo(stream); } var users = dbContext.Set<User>(); var dbUser = new User() { Name = user.Name, IdCardNum = user.IdNum, IdCardImgName = fileName }; users.Add(dbUser); dbContext.SaveChanges(); return RedirectToAction(nameof(Index)); }
다중 파일 업로드
다중 파일 업로드는 단일 파일 업로드와 유사합니다. 양식의 ViewModel은 ICollection
샘플 소스 코드
참고: 샘플 데이터 저장소는 Sqlite를 사용하고 Code First 메서드는 데이터베이스를 생성합니다.
파일 업로드 기능을 구현하는 asp.net 코어와 관련된 더 많은 기사를 보려면 PHP 중국어 웹사이트를 주목하세요!