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