public async Task<string> GetFileUrl(Photo photo) { string relativeFileName = Path.Combine( _relativePathToPhotos, photo.DepositId.ToString(), photo.Id.ToString(), photo.ImageUploadFileName); string absoluteFileName = _absoluteRoot + relativeFileName; if (!File.Exists(absoluteFileName)) { string dirName = Path.GetDirectoryName(absoluteFileName); if (!Directory.Exists(dirName)) { Directory.CreateDirectory(dirName); } using (var ms = new MemoryStream(photo.ImageUpload.Content)) using (var fs = new FileStream(absoluteFileName, FileMode.Create)) { await ms.CopyToAsync(fs); } } return relativeFileName.Replace('\\', '/'); }
public async Task AddPhotos(int depositId, params IFormFile[] photoFiles) { photoFiles.ToList().ForEach(pf => { var content = pf.ToByteArray(); var photo = new Photo() { DepositId = depositId, ImageUploadFileName = pf.GetFileName(), ImageUpload = new ImageUpload() { Content = content, ContentType = pf.ContentType, Length = content.Length } }; _dbContext.Photos.Add(photo); _dbContext.ImageUploads.Add(photo.ImageUpload); }); await _dbContext.SaveChangesAsync(); }