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);
        }
Beispiel #3
0
        //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);
        }