public static dynamic ConsultarArchivo(IContextFactory factory, IOptions <ConnectionDB> connection,
                                               long idProyecto)
        {
            ArchivoResponse retorno = new ArchivoResponse();

            using (Aldeas_Context db = factory.Create(connection))
            {
                var data = from pro in db.tbProyectos
                           where pro.id == idProyecto
                           select pro;


                var directorio = "ProyectosFiles/" + idProyecto + "/";

                if (!Directory.Exists(directorio))
                {
                    DirectoryInfo di = Directory.CreateDirectory(directorio);
                }



                if (data.Any())
                {
                    retorno.Idproyecto    = data.First().id;
                    retorno.TipoArchivo   = data.First().tipoArchivo;;
                    retorno.NombreArchivo = data.First().Nombrearchivo;

                    if (!File.Exists(directorio + retorno.NombreArchivo))
                    {
                        try
                        {
                            using (var fs = new FileStream(directorio + retorno.NombreArchivo, FileMode.Create, FileAccess.Write))
                            {
                                fs.Write(data.First().archivo, 0, data.First().archivo.Length);
                            }
                        }
                        catch (Exception ex)
                        {
                            Console.WriteLine("Exception caught in process: {0}", ex);
                        }
                    }
                }
            }
            return(retorno);
        }
Exemplo n.º 2
0
        public IActionResult GetFileProyect(long id)
        {
            ArchivoResponse data = _dataModelRepository.ConsultarArchivo(id);

            if (data.Idproyecto == 0)
            {
                return(BadRequest(new { message = "No se pudo obtener el archivo" }));
            }
            else
            {
                var TipoArchivo = "application/octet-stream";
                var nombre      = "ProyectosFiles/" + id + "/" + data.NombreArchivo;
                if (data.TipoArchivo.Contains("pdf"))
                {
                    TipoArchivo = data.TipoArchivo;
                }

                var stream = new FileStream(@nombre, FileMode.Open);
                return(File(stream, TipoArchivo, data.NombreArchivo));
            }
        }
Exemplo n.º 3
0
        public ArchivoResponse UploadFileTemp(ArchivoRequest request)
        {
            string path = _appSettings.RemotePathTempDocs;

            string guid    = Guid.NewGuid().ToString();
            string newPath = Path.Combine(path, guid);

            if (!Directory.Exists(newPath))
            {
                Directory.CreateDirectory(newPath);
            }
            if (request.size > 0)
            {
                string fullPath = Path.Combine(newPath, request.fileName);
                File.WriteAllBytes(fullPath, request.content);
            }
            var archivo = new ArchivoResponse {
                id = guid, fileName = request.fileName, mimetype = request.mimetype, size = request.size
            };

            return(archivo);
        }