/** * Subir imagenes al servidor * con verificacion de seguridad * nombre modificado y mas * @param $name_input_file * @param $carpeta_destino * @param bool $uniqueName * @param bool|false $vaciar_carpeta * @param bool $resize * @param int $maxWidth * @return string */ public function __construct($name_input_file, $carpeta_destino, $uniqueName = false, $vaciar_carpeta = false, $resize = true, $maxWidth = 900) { //nombres $fileName = $_FILES[$name_input_file]['name']; $fileTemp = $_FILES[$name_input_file]['tmp_name']; if ($fileName != '') { $file_type = $_FILES[$name_input_file]['type']; //returns the mimetype $permitidos = array('image/jpg', 'image/jpeg', 'image/pjpeg', 'image/gif', 'image/png', 'image/svg'); # MIME types permitidos /* * $mimeFile = new finfo(FILEINFO_MIME_TYPE); * $fileContent = file_get_contents($fileTemp); * $mime = $mimeFile->buffer($fileContent); */ # Buscamos si el archivo que subimos tiene el MIME type que permitimos en nuestra subida if (!in_array($file_type, $permitidos)) { $ext_invalida = 'Ups! Solamente puedes subir imagenes con la extensión GIF, JPG, JPEG o PNG'; Scripts::scriptAlert($ext_invalida); Scripts::scriptVolver(); exit; } else { /** * extension */ $ext = @($extension = '.' . end(explode('.', $fileName))); /** * archivo final * nombre del archivo * final con md5 */ $fileFinal = md5(strtolower($fileName)) . $ext; if ($uniqueName) { $fileFinal = uniqid('img_') . md5($fileName) . $ext; } /** * crear la carpeta si no existe */ if (!file_exists($carpeta_destino)) { //crear try { mkdir($carpeta_destino, 0755); } catch (Exception $e) { die('Error al crear carpeta: ' . $e->getMessage()); } } /** * vaciar el directorio si se solicita */ if ($vaciar_carpeta == true) { self::vaciarDirectorio($carpeta_destino); } try { //subir la imagen move_uploaded_file($fileTemp, $carpeta_destino . '/' . $fileFinal); //nombre del archivo if ($resize == true) { self::resizeImage($carpeta_destino . '/' . $fileFinal, $carpeta_destino . '/' . $fileFinal, $maxWidth); } $this->FILENAME = $fileFinal; return $fileFinal; } catch (Exception $error) { //si falla echo 'Error al subir: ', $error->getMessage(), "\n"; } } } else { Scripts::scriptAlert('Error. Seleccionar una imagen'); Scripts::scriptVolver(); } }