public Task <ImageModel> CreateAsync(UploadedImageModel entry) { throw new NotImplementedException(); }
public async Task <IList <UploadedImageModel> > Upload(IList <IFormFile> files) { if (files == null || files.Count == 0) { return(null); } var fileApiBase = options.FileApiBase; if (fileApiBase.EndsWith("/")) { fileApiBase = fileApiBase.Remove(fileApiBase.Length - 1, 1); } IList <UploadedImageModel> results = new List <UploadedImageModel>(); foreach (var file in files) { var fileName = Path.GetFileNameWithoutExtension(file.FileName); var extensionName = Path.GetExtension(file.FileName); var serverFileName = GenerateFileNameToUpload(fileName, extensionName); // 서버 저장 경로 var path = Path.Combine(GenerateDirectoryToUpload(), serverFileName); // 파일 액세스 경로 var src = $"{fileApiBase}/{Guid.NewGuid().ToString("n")}-{Uri.EscapeUriString(serverFileName)}{extensionName}"; var uploaded = new UploadedImageModel { ContentType = file.ContentType, FileName = fileName, FileExtension = extensionName, Size = file.Length, Src = src, Path = path, }; try { using (var stream = new FileStream(path, FileMode.OpenOrCreate, FileAccess.Write, FileShare.Read)) { await file.CopyToAsync(stream); stream.Flush(); stream.Close(); } results.Add(uploaded); } catch (Exception ex) { logger.LogError(ex, $"ERROR: Write a file stream. fileName={fileName}{extensionName} | path={path}"); throw; } } return(results); }