1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798 |
- <?php
- /* AJAX
- * Selecciona los datos de la carrera
- * Recibe:
- * id - ID de la carrera
- * Return:
- * resultado o cadena de error
- */
- require_once("../../include/constantes.php");
- require_once("../../include/nocache.php");
- require_once("../../include/util.php");
- require_once("../../include/bd_pdo.php");
- require_once("../../classes/ValidaSesion.php");
- $pag = "../calificaciones_grupo.php";
- //--- Objeto para validar usuario. El id de usuario lo lee desde sesión
- $objSesion = new ValidaSesion($pdo, 24, APSA);
- if(!$objSesion->tieneAcceso()){
- $objSesion->terminaSesion();
- //print_r($objSesion->getError());
- }
- if(!isset($_FILES['archivo']['name']) || $_FILES['archivo']['name'] == null || !isset($_POST["materia"]) || !isset($_POST["grupo"])){
- header("Location: ".$pag."?error=0");
- exit();
- }
- //$prof = filter_input(INPUT_POST, "prof", FILTER_SANITIZE_NUMBER_INT);
- $materia = filter_input(INPUT_POST, "materia", FILTER_SANITIZE_NUMBER_INT);
- $grupo = filter_input(INPUT_POST, "grupo", FILTER_SANITIZE_NUMBER_INT);
- $nombresArr = $_POST["nombre"];
- $exts_arr = array("pdf");
- $countfiles = count($_FILES['archivo']['name']);
- for($i=0; $i<$countfiles; $i++){
- $archivo = $_FILES['archivo']['name'][$i];
- $dot_arr = explode('.', $archivo);
- $ext = end($dot_arr);
- if(!in_array($ext, $exts_arr)){
- header("Location: ".$pag."?error=1");
- exit();
- }
- }
- try {
- $pdo->beginTransaction();
- $target_dir = "../files/calificaciones/".$_SESSION["periodo_id"]."/";
- if (!file_exists($target_dir)) {
- mkdir($target_dir, 0755, true);
- }
- $timestamp = date("Ymdhis");
- for($i=0; $i<$countfiles; $i++){
- $target_file = $materia."_".$grupo."_".$i."_".$timestamp.".pdf";
- $nombre = strip_tags($nombresArr[$i]);
- $stmt = $pdo->prepare('Select * from fi_archivocalificacionmaterias(:mat, :gpo, :per, :usr, :nombre, :file)');//devuelve: Usuario_id
- $stmt->bindParam(":mat", $materia);
- $stmt->bindParam(":gpo", $grupo);
- $stmt->bindParam(":per", $_SESSION["periodo_id"]);
- $stmt->bindParam(":usr", $_SESSION["usuario_id"]);
- $stmt->bindParam(":nombre", $nombre);
- $stmt->bindParam(":file", $target_file);
- if(!$stmt->execute()){
- $pdo->rollBack();
- header("Location:".$pag."?error=2");
- exit();
- }
- $stmt->closeCursor(); // cierra conexion de resultado
- }
- for($i=0; $i<$countfiles; $i++){
- $target_file = $materia."_".$grupo."_".$i."_".$timestamp.".pdf";
- if (!move_uploaded_file($_FILES["archivo"]["tmp_name"][$i], $target_dir.$target_file)) {
- for($j=0; $j<$i; $j++){
- $old_file = $materia."_".$grupo."_".$j."_".$timestamp;
- unlink($target_dir.$old_file);
- }
- $pdo->rollBack();
- header("Location:".$pag."?error=3");
- exit();
- }
-
- }
- $pdo->commit();
- header("Location: ".$pag."?ok=0");
- exit();
- } catch(PDOException $e) {
- $pdo->rollBack();
- header("Location:".$pag."?error=2");
- }
- ?>
|