public AdicionarImagenResponse AdicionarImagem(AdicionarImagemRequest request) { Imagem imagem = new Imagem(request.Nome, request.Dados, request.ContentType); _repositorioImagem.Adicionar(imagem); return(new AdicionarImagenResponse(imagem.Id)); }
public async Task <IActionResult> SalvarImagem(IList <IFormFile> arquivos) { AdicionarImagemRequest imagemRequest = new AdicionarImagemRequest(); IFormFile imagemEnviada = arquivos.FirstOrDefault(); if (imagemEnviada != null || imagemEnviada.ContentType.ToLower().StartsWith("image/")) { MemoryStream ms = new MemoryStream(); imagemEnviada.OpenReadStream().CopyTo(ms); string fileName; Imagem imagemEntity = new Imagem() { Nome = imagemEnviada.Name, Dados = ms.ToArray(), ContentType = imagemEnviada.ContentType }; var arquivo = imagemEntity.Dados; string webRootPath = _hostingEnvironment.WebRootPath; string newPath = Path.Combine(webRootPath, "images"); if (!Directory.Exists(newPath)) { Directory.CreateDirectory(newPath); } //var path = Path.Combine( // Directory.GetCurrentDirectory(), "wwwroot", // imagemEnviada.Name + ".png" ); var extension = "." + imagemEnviada.FileName.Split('.')[imagemEnviada.FileName.Split('.').Length - 1]; fileName = Guid.NewGuid().ToString() + extension; //Create a new Name //for the file due to security reasons. var path = Path.Combine(Directory.GetCurrentDirectory(), "wwwroot\\images", fileName); using (var bits = new FileStream(path, FileMode.Create)) { await imagemEnviada.CopyToAsync(bits); } imagemRequest.Nome = imagemEnviada.Name; imagemRequest.Dados = ms.ToArray(); imagemRequest.ContentType = imagemEnviada.ContentType; } try { var response = _serviceImagem.AdicionarImagem(imagemRequest); return(await ResponseAsync(response, _serviceImagem)); } catch (Exception e) { return(await ResponseExceptionAsync(e)); } }