주의사항
가이드로 제공되는 아래 코드는 샘플 코드로서, 리소스 관리나 보안 관련 처리에 대해서는 미흡할 수 있습니다.
단순 참고용으로만 사용해주세요.
1. 이미지, 동영상, 파일 업로드
| Code Block | ||||||||
|---|---|---|---|---|---|---|---|---|
| ||||||||
using System;
using System.IO;
using System.Threading.Tasks;
using Microsoft.AspNetCore.Mvc;
using Microsoft.AspNetCore.Http;
// absolute path to WEB ROOT directory
private const string WEB_ROOT_ABS_PATH = @"C:\workspace\SynapEditor_C#\SynapEditor\wwwroot";
// absolute path to directory where the files are to be uploaded
private readonly string UPLOAD_DIR_ABS_PATH = Path.Combine(WEB_ROOT_ABS_PATH, "uploads");
/*
* file upload API
*/
[HttpPost("api/uploadFile")]
public IActionResult UploadFile(IFormFile file)
{
string uploadFileAbsPath = SaveFileToDisk(file).Result;
string uploadFileRelPath = Path.GetRelativePath(UPLOAD_DIR_ABS_PATH, uploadFileAbsPath);
return Ok(new {uploadPath = uploadFileRelPath});
}
/*
* save data received from client-side to local filesystem
*/
private async Task<string> SaveFileToDisk(IFormFile file)
{
string extension = Path.GetExtension(file.FileName);
string uploadFileName = $"{Guid.NewGuid()}{extension}";
string uploadFileAbsPath = Path.Combine(UPLOAD_DIR_ABS_PATH, uploadFileName);
using (var fileStream = new FileStream(uploadFileAbsPath, FileMode.Create))
{
await file.CopyToAsync(fileStream);
}
return uploadFileAbsPath;
} |
...