public function descargar($codigo) { if (Archivo_model::existe($codigo)) { $aux = FALSE; $archivo = new Archivo_model(); $archivo->datos($codigo); $file = str_replace('http://localhost', realpath(__DIR__ . '/../../../'), $archivo->ruta($codigo)); if ($archivo->codigoTarea() != NULL || $archivo->codigoRespuesta() != NULL) { if ($this->session->userdata('usuario') == 'admin' || Tarea_model::existeEmpleado($archivo->codigoTarea($codigo), $this->session->userdata('email'))) { $aux = TRUE; } } else { if ($this->session->userdata('usuario') == 'admin' || $archivo->emailEmpleado() == $this->session->userdata('email') || Proyecto_model::existeEmpleado($archivo->codigoProyecto($codigo), $this->session->userdata('email'))) { $aux = TRUE; } elseif ($this->session->userdata('usuario') == 'cliente') { if ($archivo->CodigoProyecto != NULL) { $proyecto = new Proyecto_model(); $codigoP = $proyecto->codigoPresupuesto($archivo->CodigoProyecto); $presupuesto = new Presupuesto_model(); if ($codigoP != '') { if ($presupuesto->email($codigoP) == $this->session->userdata('email')) { $aux = TRUE; } } } else { $codigoP = $archivo->codigoPresupuesto($codigo); $presupuesto = new Presupuesto_model(); if ($codigoP != '') { if ($presupuesto->email($codigoP) == $this->session->userdata('email')) { $aux = TRUE; } } } } } if ($aux) { if (file_exists($file)) { $extension = $archivo->Extension; if ($extension == 'pdf') { header('Content-type: application/pdf'); } elseif ($extension == 'jpg' || $extension == 'png' || $extension == 'jpeg') { header('Content-type: application/jpg'); } header('Content-Disposition: attachment; filename=' . basename($file)); header('Expires: 0'); header('Cache-Control: must-revalidate'); header('Pragma: public'); header('Content-Length: ' . filesize($file)); ob_clean(); flush(); readfile($file); } else { echo "El archivo no existe"; } } else { echo 'No puedes descargar el archivo'; } } else { echo 'El archivo no existe'; } }