function __construct($options = null) { $this->options = array('script_url' => $this->getFullUrl() . '/uploader.php', 'upload_dir' => getServerRoot() . '/archivos/temporal/uploaderFiles/', 'upload_url' => $this->getFullUrl() . '/archivos/temporal/uploaderFiles/', 'param_name' => 'files', 'delete_type' => 'POST', 'max_file_size' => null, 'min_file_size' => 1, 'accept_file_types' => '/(\\.|\\/)(pdf|doc|docx|ppt|pptx|xls|xlsx|mov|mp4|wmv|avi|3gp|avi|flv|mpg|mpeg|mpe|mp3|ogg|ogv|m4a|wav|wma)$/i', 'max_number_of_files' => null, 'discard_aborted_uploads' => true, 'orient_image' => false, 'image_versions' => array('thumbnail' => array('upload_dir' => getServerRoot() . '/archivos/temporal/thumbnails/', 'upload_url' => $this->getFullUrl() . '/archivos/temporal/thumbnails/', 'max_width' => 80, 'max_height' => 80))); if ($options) { $this->options = array_replace_recursive($this->options, $options); } }
function sendMailSES($text, $html, $subject, $from, $to = array()) { try { $client = Aws::factory(getServerRoot() . '/modulos/aws/modelos/configurationFile.php')->get('ses'); $messageId = $client->sendEmail(array('Source' => $from, 'Destination' => array('ToAddresses' => $to), 'Message' => array('Subject' => array('Data' => $subject), 'Body' => array('Text' => array('Data' => $text), 'Html' => array('Data' => $html))))); return true; } catch (Exception $e) { return false; } }
function deleteMessageFromQueue($receiptHandle) { $client = Aws::factory(getServerRoot() . '/modulos/aws/modelos/configurationFile.php')->get('sqs'); $res = false; try { $res = $client->deleteMessage(array('QueueUrl' => getQueueUrl(), 'ReceiptHandle' => $receiptHandle)); return true; } catch (SqsException $e) { //Ocurrió un error al borrar el mensaje return false; } }
function deleteFileFromS3($key) { $client = Aws::factory(getServerRoot() . '/modulos/aws/modelos/configurationFile.php')->get('s3'); $bucket = getBucketName(); try { $client->deleteObject(array('Bucket' => $bucket, 'Key' => $key)); return true; } catch (Exception $e) { //echo 'No se borro el archivo ' . $bucket . "/" . $key; require_once 'modulos/principal/modelos/variablesDeProductoModelo.php'; agregarArchivoPendientePorBorrar($bucket . "/" . $key); return false; } }
function crearClaseDeArchivo($idUsuario, $idCurso, $idTema, $fileName, $fileType) { require_once 'modulos/usuarios/modelos/usuarioModelo.php'; require_once 'modulos/cursos/modelos/CursoModelo.php'; require_once 'modulos/cursos/modelos/TemaModelo.php'; //Carpeta donde se va a guardar el archivo temporal $filePath = getServerRoot() . "/archivos/temporal/uploaderFiles/"; $res = array(); //Validamos que el curso sea del usuario y que el tema sea del curso if (getIdUsuarioDeCurso($idCurso) == $idUsuario && $idCurso == getIdCursoPerteneciente($idTema)) { //Guardamos el nombre original del archivo para establecerlo como titulo $pathInfo = pathinfo($filePath . $fileName); $titulo = $pathInfo['filename']; $newName = getUniqueCode(64) . "." . $pathInfo['extension']; require_once 'funcionesPHP/funcionesParaArchivos.php'; //Le cambiamos el nombre del archivo a uno generico if (rename($filePath . $fileName, $filePath . $newName)) { $file = $filePath . $newName; $pathInfo = pathinfo($file); $clase = new Clase(); $clase->idTema = $idTema; $clase->titulo = $titulo; $clase->idTipoClase = getTipoClase($fileType); //Establecemos el ancho de banda utilizado por la subida de este archivo $size = getFileSize($file); require_once 'modulos/principal/modelos/variablesDeProductoModelo.php'; deltaVariableDeProducto("usoActualAnchoDeBanda", $size); require_once 'modulos/aws/modelos/s3Modelo.php'; if ($clase->idTipoClase == 0 || $clase->idTipoClase == 4) { //Creamos la clase en la bd //Si es video o audio creamos la clase con la bandera que todavía no se transforma $clase->transformado = 0; $clase->usoDeDisco = 0; $clase->duracion = "00:00"; $clase->orden = getUltimoOrdenEnTema($idTema) + 1; $idClase = altaClase($clase); if ($idClase >= 0) { //Subimos el archivo al servicio S3 de amazon $s3res = uploadFileToS3($file); if ($s3res['res']) { //El archivo se subio al cdn //Generamos los datos del mensaje $datosDelMensaje = array("bucket" => $s3res['bucket'], "key" => $s3res['key'], "tipo" => $clase->idTipoClase, "host" => getDomainName(), "idClase" => $idClase); $datosJson = json_encode($datosDelMensaje); require_once 'modulos/aws/modelos/sqsModelo.php'; if (AddMessageToQueue($datosJson)) { //Se mando correctamente el mensaje //Se dió de alta correctamente $res['resultado'] = true; $res['url'] = "#"; } else { //Ocurrio un eror al agregar el mensaje $res['resultado'] = false; $res['mensaje'] = "Ocurrió un error al guardar tu archivo en nuestros servidores. Intenta de nuevo más tarde"; } } else { //Erro al subir el archivo al s3 de amazon $res['resultado'] = false; $res['mensaje'] = "Ocurrió un error al guardar tu archivo en nuestros servidores. Intenta de nuevo más tarde"; } } else { //Ocurrió un error al agregar a la bd $res['resultado'] = false; $res['mensaje'] = "Ocurrió un error al guardar tu archivo en nuestros servidores. Intenta de nuevo más tarde"; } } else { $clase->transformado = 1; //Subimos el archivo al servicio S3 de amazon $s3res = uploadFileToS3($file); if ($s3res['res']) { //Si se subio, guardamos la clase en la bd $clase->archivo = $s3res['link']; $clase->usoDeDisco = $size; $clase->orden = getUltimoOrdenEnTema($idTema) + 1; $idClase = altaClase($clase); if ($idClase >= 0) { //Se dió de alta correctamente $res['resultado'] = true; $res['url'] = "#"; } else { //Ocurrió un error al agregar a la bd $res['resultado'] = false; $res['mensaje'] = "Ocurrió un error al guardar tu archivo en nuestros servidores. Intenta de nuevo más tarde"; } } else { //Si ocurrió un error al subir al s3 $res['resultado'] = false; $res['mensaje'] = "Ocurrió un error al guardar tu archivo en nuestros servidores. Intenta de nuevo más tarde"; } } //Sin importar que paso, borramos el archivo temporal unlink($file); } else { //Si ocurrió un error, se borra y regresamos false unlink($filePath . $fileName); $res['resultado'] = false; $res['mensaje'] = "El nombre del archivo no es válido"; } } else { //Hay errores en la integridad usuario <-> curso //borramos el archivo unlink($filePath . $fileName); $res['resultado'] = false; $res['mensaje'] = "No tienes permisos para modificar este curso"; } return $res; }