public async Task <ActionResult <ResponseProductoSubirImagenDto> > ImagenMetodo1([FromBody] RequestProductoImagenModificarImagenMetodo1Dto modelo) { if (!ModelState.IsValid) { return(BadRequest()); } string urlImagenNueva = string.Empty; ResponseProductoSubirImagenDto respuesta = new ResponseProductoSubirImagenDto(); if (modelo == null) { respuesta.ListaError.Add(new ErrorDto { Mensaje = "Los parametros enviados no son correctos" }); return(BadRequest(respuesta)); } if (modelo.ArchivoBytes == null) { respuesta.ListaError.Add(new ErrorDto { Mensaje = "El archivo de bytes es requerido" }); return(BadRequest(respuesta)); } var result = await Task.FromResult(_lnProductoImagen.SubirImagenAws(modelo, ref urlImagenNueva)); if (result == 0) { respuesta.ListaError.Add(new ErrorDto { Mensaje = "Error al intentar registrar" }); return(BadRequest(respuesta)); } if (result == -1) { respuesta.ListaError.Add(new ErrorDto { Mensaje = "El IdProducto proporcionado no es válido" }); return(BadRequest(respuesta)); } respuesta.ProcesadoOk = 1; respuesta.UrlImagen = urlImagenNueva; return(Ok(respuesta)); }
public async Task <ActionResult <ResponseProductoSubirImagenDto> > ImagenMetodo3() { ResponseProductoSubirImagenDto respuesta = new ResponseProductoSubirImagenDto(); try { var archivoTemp = Request.Form.Files["Archivo"]; var idProductoTemp = Request.Form["IdProducto"]; } catch (InvalidOperationException invEx) { respuesta.ListaError.Add(new ErrorDto { Mensaje = "Los parametros 'Archivo' y 'IdProducto' deben ser enviados mediante 'multipart/form-data'" }); respuesta.ListaError.Add(new ErrorDto { Mensaje = (string.IsNullOrEmpty(invEx.StackTrace) ? invEx.Message : invEx.StackTrace).Replace(Environment.NewLine, " ") }); return(BadRequest(respuesta)); } var archivo = Request.Form.Files["Archivo"]; var idProducto = Request.Form["IdProducto"]; if (archivo == null || string.IsNullOrEmpty(idProducto)) { respuesta.ListaError.Add(new ErrorDto { Mensaje = "Los parametros 'Archivo' y 'IdProducto' deben ser enviados mediante 'multipart/form-data'" }); return(BadRequest(respuesta)); } //transformar IFormFile hacia bytes var file = archivo; if (file.Length == 0) { respuesta.ListaError.Add(new ErrorDto { Mensaje = "Los parametros enviados no son correctos" }); return(BadRequest(respuesta)); } string urlImagenNueva = string.Empty; var nombreArchivo = System.Net.Http.Headers.ContentDispositionHeaderValue.Parse(file.ContentDisposition).FileName.Trim('"'); string extension = Path.GetExtension(nombreArchivo).Trim().Replace(".", string.Empty).ToLower(); byte[] archivoBytes; using (var memoryStream = new MemoryStream()) { await file.CopyToAsync(memoryStream); archivoBytes = memoryStream.ToArray(); } RequestProductoImagenModificarImagenMetodo1Dto modelo = new RequestProductoImagenModificarImagenMetodo1Dto { ArchivoBytes = archivoBytes, ExtensionSinPunto = extension, IdProducto = Convert.ToInt64(idProducto) }; var result = await Task.FromResult(_lnProductoImagen.SubirImagenAws(modelo, ref urlImagenNueva)); if (result == 0) { respuesta.ListaError.Add(new ErrorDto { Mensaje = "Error al intentar registrar" }); return(BadRequest(respuesta)); } respuesta.ProcesadoOk = 1; respuesta.UrlImagen = urlImagenNueva; return(Ok(respuesta)); }