> 백엔드 개발 > C#.Net 튜토리얼 > asp.net 코어는 파일 업로드 기능을 구현합니다.

asp.net 코어는 파일 업로드 기능을 구현합니다.

高洛峰
풀어 주다: 2017-02-07 11:42:12
원래의
2103명이 탐색했습니다.

본 글의 예시에서는 참고용으로 단일 파일 업로드와 다중 파일 업로드 기능을 공유하고 있습니다. 구체적인 내용은 다음과 같습니다.

단일 파일 업로드
파일 업로드는 웹 애플리케이션에서 흔히 사용되는 기능입니다. . asp.net 코어에 파일을 업로드하고 서버에 저장하는 것은 매우 쉽습니다. ASP.NET Core 프로젝트에서 파일을 업로드하는 방법을 보여드리겠습니다.
먼저 asp.net 코어 프로젝트를 생성한 후 Controller 파일에 HomeController를 추가하고 Views 폴더의 Home 폴더에 New.cshtml 뷰 파일을 추가합니다. 아래와 같이

asp.net core实现文件上传功能

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을 사용한 다음 양식 다중만 추가하세요(H5만 지원).

샘플 소스 코드
참고: 샘플 데이터 저장소는 Sqlite를 사용하고 Code First 메서드는 데이터베이스를 생성합니다.

파일 업로드 기능을 구현하는 asp.net 코어와 관련된 더 많은 기사를 보려면 PHP 중국어 웹사이트를 주목하세요!

관련 라벨:
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
최신 이슈
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿