-
[ASP.NET Core] WebAPI 일반적인 파일업로드 기능 구현 예제.NET/ASP.NET Core 2021. 1. 17. 15:03반응형
아래예제는 웹 서비스에서 파일업로드 예제이다. 전체소스코드는 아래 링크를 찾아가자
https://github.com/ddochea0314/DotNETExamples/tree/main/Web/File/BasicUpload
using Microsoft.AspNetCore.Http; using Microsoft.AspNetCore.Mvc; using System; using System.Collections.Generic; using System.IO; using System.Linq; using System.Threading.Tasks; namespace BasicUpload.Controllers { [Route("api/[controller]")] [ApiController] public class UploadController : ControllerBase { [HttpPost] public async Task<IActionResult> Post(IFormFile file) { if(file.Length > 0) // 파일사이즈가 0이면 처리하지 않는다. { var path = Path.Combine($"Upload"); if (!Directory.Exists(path)) { Directory.CreateDirectory(path); // 웹 서비스 내 업로드폴더가 없을 경우 자동생성을 위한 처리 } var filename = DateTime.Now.ToString("yyyyMMddHHmmss_") + file.FileName; // 동일한 파일명이 있으면 덮어쓰거나, 오류가 날 수 있으므로 파일명을 바꾼다. path = Path.Combine(path, filename); using (var stream = System.IO.File.Create(path)) { await file.CopyToAsync(stream); } } return Ok(); } } }
적용 후 실행하면 swagger 페이지가 열린다. "/api/Upload"를 선택하면 아래와 같은 화면이 나온다.
"Try it out"을 눌러 파일 업로드 테스트 화면을 연다. File Input 태그에서 파일 선택을 눌러 업로드할 파일을 선택 한뒤, Execute 를 누른다.
프로젝트 폴더 내 "Upload" 폴더가 새로 생성되며, 파일이 업로드 된 것을 확인할 수 있다.
반응형'.NET > ASP.NET Core' 카테고리의 다른 글
[ASP.NET Core] 세상 간편해진 Video/Audio Streaming (0) 2021.04.21 [ASP.NET Core] 개선된 다운로드 예제(feat. ASP.NET을 쓰지 말아야할 이유 1 Stack 추가) (0) 2021.04.15 [ASP.NET Core] HTTP Cache-Control Header 를 이용한 Get 응답(Response) 캐싱 및 파일 다운로드 예제 (0) 2021.04.12 [ASP.NET Core] axios 로 Array 형식의 파라메터를 전달하는 Get 메소드 사용시 유의사항 (0) 2021.01.21 [ASP.NET Core] WebAPI 일반적인 파일다운로드 기능 구현 예제 (0) 2021.01.16