public ResponseDescargarArchivoDTO DescargarArchivo(RequestDescargarArchivoDTO request) { try { string rutaReal = Path.Combine(getRutaFisica(request.PathFile)); if (File.Exists(rutaReal)) { byte[] archivoBytes = File.ReadAllBytes(rutaReal); return(new ResponseDescargarArchivoDTO() { archivoBytes = archivoBytes, errores = new Dictionary <string, string>(), ficheroVisual = request.ArchivoVisual }); } else { var resp = new ResponseDescargarArchivoDTO() { archivoBytes = null, errores = new Dictionary <string, string>(), ficheroVisual = "" }; resp.errores.Add("Error", "El Archivo solicitado no existe"); return(resp); } } catch (Exception ex) { throw ex; } }
public ResponseDescargarArchivoDTO DescargarArchivo(RequestDescargarArchivoDTO request) { try { //using (var Contexto = new ContextoParaBaseDatos()) //{ //RepositorioDocumentoAdjunto repo = new RepositorioDocumentoAdjunto(Contexto); //var registro = repo.ObtenerPorFicheroVisual(request.ArchivoVisual); String rutaReal = Path.Combine(getRutaFisica(request.SociedadPropietaria), request.ArchivoVisual.Replace("\\", "")); if (File.Exists(rutaReal)) { Byte[] archivoBytes = System.IO.File.ReadAllBytes(rutaReal); return(new ResponseDescargarArchivoDTO() { archivoBytes = archivoBytes, errores = new Dictionary <string, string>(), estadoOperacion = ConstantesSistema.EstadoOperacionServicioCorrecto, ficheroVisual = request.ArchivoVisual }); } else { var resp = new ResponseDescargarArchivoDTO() { archivoBytes = null, errores = new Dictionary <string, string>(), estadoOperacion = ConstantesSistema.EstadoOperacionServicioError, ficheroVisual = "" }; resp.errores.Add("Error", "El Archivo solicitado no existe"); return(resp); } //} } catch (Exception ex) { ManejadorExcepciones.PublicarExcepcion(ex, PoliticaExcepcion.LogicaNegocio); } return(null); }
//public IActionResult DescargarArchivo([FromBody] RequestDescargarArchivoDTO request) public IActionResult DescargarArchivo([FromQuery(Name = "path")] string path, [FromQuery(Name = "name")] string name) { DescargarArchivoRequestDTO response = new DescargarArchivoRequestDTO(); RequestDescargarArchivoDTO request = new RequestDescargarArchivoDTO(); request.PathFile = path; request.ArchivoVisual = name; try { response.Result.Data = _FincaFotoGeoreferenciadaService.DescargarArchivo(request); response.Result.Success = true; string extension = Path.GetExtension(request.PathFile); Response.Clear(); switch (extension) { case ".docx": Response.Headers.Add("Content-type", "application/vnd.openxmlformats-officedocument.wordprocessingml.document"); break; case ".jpg": Response.Headers.Add("Content-type", "image/jpeg"); break; case ".png": Response.Headers.Add("Content-type", "image/png"); break; case ".pdf": Response.Headers.Add("Content-type", "application/pdf"); break; case ".xls": Response.Headers.Add("Content-type", "application/vnd.ms-excel"); break; case ".xlsx": Response.Headers.Add("Content-type", "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"); break; case ".doc": Response.Headers.Add("Content-type", "application/msword"); break; } //context.Response.ContentType = "Application/octet-stream"; //string content = Convert.ToBase64String(Encoding.UTF8.GetBytes(string.Format("attachment; filename=\"{0}\"", request.ArchivoVisual))); var contentDispositionHeader = new ContentDisposition() { FileName = request.ArchivoVisual, DispositionType = "attachment" }; Response.Headers.Add("Content-Length", response.Result.Data.archivoBytes.Length.ToString()); Response.Headers.Add("Content-Disposition", contentDispositionHeader.ToString()); Response.Body.WriteAsync(response.Result.Data.archivoBytes); } catch (ResultException ex) { response.Result = new Result() { Success = true, ErrCode = ex.Result.ErrCode, Message = ex.Result.Message }; } catch (Exception ex) { response.Result = new Result() { Success = false, Message = "Ocurrio un problema en el servicio, intentelo nuevamente." }; } return(null); }