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); }
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)); } }
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); }