diff --git a/src/Objects/Candidato.php b/src/Objects/Candidato.php index 70ec93c..30f2099 100644 --- a/src/Objects/Candidato.php +++ b/src/Objects/Candidato.php @@ -12,6 +12,66 @@ include_once("BD.php"); include_once("Persona.php"); include_once("Automata.php"); include_once("ListaCapacidadesProfesionales.php"); +include_once("upload.class.php"); + +function limpia($imagen){ + if(file_exists($imagen)) { + unlink($imagen); + } +} + +function tieneImagen($OID){ + $cadena = 'imagenes/' . $OID . '_150.jpg'; + return file_exists($cadena); +} + +function rutaImagen($OID){ + $cadena = 'imagenes/' . $OID . '_150.jpg'; + return $cadena; +} + +function uploadImagenCandidato($OID, $size1_w, $size1_h, $size2_w=0, $size2_h=0, $mascara='') { + $path = "imagenes/"; // este directorio tiene que tener chmod 777 + $upload_file_name = "candidato_imagen"; // el nombre del campo tipo file de nuestro formulario + $acceptable_file_types = "image/gif|image/jpeg|image/pjpeg"; // acepta GIF et JPEG + $default_extension = ""; + $mode = 1; // OPTIONS: + // 1 = overwrite mode + // 2 = create new with incremental extention + // 3 = do nothing if exists, highest protection + +// un poco de limpieza previa + // este es el temporal + $glob = glob($path . $OID, '_tmp'); + limpia($glob); + limpia($path . '_' . $size1_w . '.jpg'); + limpia($path . '_' . $size2_w . '.jpg'); +// fin de la limpia + + if(strlen($_FILES['candidato_imagen']['name'])) { + $my_uploader = new uploader('es'); // Create a new instance of the class + $my_uploader->max_filesize(1500000); // OPTIONAL: set the max filesize of uploadable files in bytes + $my_uploader->max_image_size(1600, 1600); // OPTIONAL: if you're uploading images, you can set the max pixel dimensions + // UPLOAD the file + if ($my_uploader->upload($upload_file_name, $acceptable_file_types, $default_extension)) { + $my_uploader->save_file($path, $OID . '_tmp', $mode); + if (!$my_uploader->error) { + $my_uploader->resize($OID . '_' . $size1_w . '.jpg', $size1_w, $size1_h, 60); + if($size2_w) { + $my_uploader->resize($OID . '_' . $size2_w . '.jpg', $size2_w, $size2_h, 60); + } + $my_uploader->delete_file; + } + } + if ($my_uploader->error) { + echo $my_uploader->error; + } + + $glob = glob($path . $OID, '_tmp'); + limpia($glob); + } +} + class Candidato extends Persona { diff --git a/src/Objects/upload.class.php b/src/Objects/upload.class.php new file mode 100755 index 0000000..2a5c189 --- /dev/null +++ b/src/Objects/upload.class.php @@ -0,0 +1,678 @@ + - Italian text + * [fi] Dotcom Media Solutions, http://www.dotcom.ms - Finnish text + * [es] Alejandro Ramirez - Spanish text + * [no] Sigbjorn Eide - Norwegian text + * [da] Thomas Hannibal http://hannibalsoftware.dk/ - Danish Text + * + * Usage, setup, and license at the bottom of this page (README) + * + * @version: 2.15 + * @last_update: 2004-02-18 + * @description: PHP file upload class + * @requires: PHP 4.1 or higher + * + * @changes: v2.15 - Added Danish (da) error messaging + * @changes: v2.14 - Edited acceptable_file_types checks to be more lenient + * @changes: v2.13 - Added Spanish (es) and Norwegian (no) error messaging, converted all non-valid HTML language chars to named entities + * @changes: v2.12 - Added Finnish (fi) error messaging + * @changes: v2.11 - Fixed bug if $this->save_file::$path is "" + * @changes: v2.10 - Added var $path to class definition + * @changes: v2.9 - Updated error_message[5] for NL (Dutch) + * @changes: v2.8 - Cleaned up Italian error messaging (thanks to Maurizio Lemmo - http://www.tenzione.it/ ) + * @changes: v2.7 - Added new error code [5] to save_file() method, fixed minor bug if unable to write to upload directory + * @changes: v2.6 - Added $this->acceptable_file_types. Fixed minor bug fix in upload() - if file 'type' is null + * @changes: v2.5.2 - Added Italian (it) error messgaing + * @changes: v2.5.1 - Added German (de) and Dutch (nl) error messgaing + * @changes: v2.4 - Added error messgae language preferences + * @changes: v2.3.1 - Bugfix for upload $path in $this->save_file() + * @changes: v2.3 - Initialized all variables (compatibale with PHP error notices) + * @changes: v2.2 - Changed ereg() to stristr() whenever possible + * + * + * METHODS: + * uploader() - constructor, sets error message language preference + * max_filesize() - set a max filesize in bytes + * max_image_size() - set max pixel dimenstions for image uploads + * upload() - checks if file is acceptable, uploads file to server's temp directory + * save_file() - moves the uploaded file and renames it depending on the save_file($overwrite_mode) + * + * cleanup_text_file() - (PRIVATE) convert Mac and/or PC line breaks to UNIX + * get_error() - (PRIVATE) gets language-specific error message + * + * Error code: available in English (en), French (fr), German (de), Dutch (nl), Italian (it) + * [0] - "No file was uploaded" + * [1] - "Maximum file size exceeded" + * [2] - "Maximum image size exceeded" + * [3] - "Only specified file type may be uploaded" + * [4] - "File already exists" (save only) + * [5] - "Permission denied. Unable to copy file" + * + */ + + + function htmlpath($relative_path) { + $realpath=realpath($relative_path); + $htmlpath=str_replace($_SERVER['DOCUMENT_ROOT'], '', $realpath); + return $htmlpath; +} + +class uploader { + + var $file; + var $path; + var $language; + var $acceptable_file_types; + var $error; + var $errors; // Depreciated (only for backward compatability) + var $accepted; + var $max_filesize; + var $max_image_width; + var $max_image_height; + + + /** + * object uploader ([string language]); + * + * Class constructor, sets error messaging language preference + * + * @param language (string) defaults to en (English). + * + * @examples: $f = new uploader(); // English error messages + * $f = new uploader('fr'); // French error messages + * $f = new uploader('de'); // German error messages + * $f = new uploader('nl'); // Dutch error messages + * $f = new uploader('it'); // Italian error messages + * $f = new uploader('fi'); // Finnish error messages + * $f = new uploader('es'); // Spanish error messages + * $f = new uploader('no'); // Norwegian error messages + * $f = new uploader('da'); // Danish error messages + * + */ + function uploader ( $language = 'en' ) { + $this->language = strtolower($language); + $this->error = ''; + } + + + /** + * void max_filesize ( int size); + * + * Set the maximum file size in bytes ($size), allowable by the object. + * NOTE: PHP's configuration file also can control the maximum upload size, which is set to 2 or 4 + * megs by default. To upload larger files, you'll have to change the php.ini file first. + * + * @param size (int) file size in bytes + * + */ + function max_filesize($size){ + $this->max_filesize = (int) $size; + } + + + /** + * void max_image_size ( int width, int height ); + * + * Sets the maximum pixel dimensions. Will only be checked if the + * uploaded file is an image + * + * @param width (int) maximum pixel width of image uploads + * @param height (int) maximum pixel height of image uploads + * + */ + function max_image_size($width, $height){ + $this->max_image_width = (int) $width; + $this->max_image_height = (int) $height; + } + + + /** + * bool upload (string filename[, string accept_type[, string extension]]); + * + * Checks if the file is acceptable and uploads it to PHP's default upload diretory + * + * @param filename (string) form field name of uploaded file + * @param accept_type (string) acceptable mime-types + * @param extension (string) default filename extenstion + * + */ + function upload($filename='', $accept_type='', $extention='') { + + $this->acceptable_file_types = trim($accept_type); // used by error messages + + if (!isset($_FILES) || !is_array($_FILES[$filename]) || !$_FILES[$filename]['name']) { + $this->error = $this->get_error(0); + $this->accepted = FALSE; + return FALSE; + } + + // Copy PHP's global $_FILES array to a local array + $this->file = $_FILES[$filename]; + $this->file['file'] = $filename; + + // Initialize empty array elements + if (!isset($this->file['extention'])) $this->file['extention'] = ""; + if (!isset($this->file['type'])) $this->file['type'] = ""; + if (!isset($this->file['size'])) $this->file['size'] = ""; + if (!isset($this->file['width'])) $this->file['width'] = ""; + if (!isset($this->file['height'])) $this->file['height'] = ""; + if (!isset($this->file['tmp_name'])) $this->file['tmp_name'] = ""; + if (!isset($this->file['raw_name'])) $this->file['raw_name'] = ""; + + // test max size + if($this->max_filesize && ($this->file["size"] > $this->max_filesize)) { + $this->error = $this->get_error(1); + $this->accepted = FALSE; + return FALSE; + } + + if(stristr($this->file["type"], "image")) { + /* IMAGES */ + $image = getimagesize($this->file["tmp_name"]); + $this->file["width"] = $image[0]; + $this->file["height"] = $image[1]; + + // test max image size + if(($this->max_image_width || $this->max_image_height) && (($this->file["width"] > $this->max_image_width) || ($this->file["height"] > $this->max_image_height))) { + $this->error = $this->get_error(2); + $this->accepted = FALSE; + return FALSE; + } + // Image Type is returned from getimagesize() function + switch($image[2]) { + case 1: + $this->file["extention"] = ".gif"; break; + case 2: + $this->file["extention"] = ".jpg"; break; + case 3: + $this->file["extention"] = ".png"; break; + case 4: + $this->file["extention"] = ".swf"; break; + case 5: + $this->file["extention"] = ".psd"; break; + case 6: + $this->file["extention"] = ".bmp"; break; + case 7: + $this->file["extention"] = ".tif"; break; + case 8: + $this->file["extention"] = ".tif"; break; + default: + $this->file["extention"] = $extention; break; + } + } elseif(!ereg("(\.)([a-z0-9]{3,5})$", $this->file["name"]) && !$extention) { + // Try and autmatically figure out the file type + // For more on mime-types: http://httpd.apache.org/docs/mod/mod_mime_magic.html + switch($this->file["type"]) { + case "text/plain": + $this->file["extention"] = ".txt"; break; + case "text/richtext": + $this->file["extention"] = ".txt"; break; + default: + break; + } + } else { + $this->file["extention"] = $extention; + } + + // check to see if the file is of type specified + if($this->acceptable_file_types) { + if(trim($this->file["type"]) && (stristr($this->acceptable_file_types, $this->file["type"]) || stristr($this->file["type"], $this->acceptable_file_types)) ) { + $this->accepted = TRUE; + } else { + $this->accepted = FALSE; + $this->error = $this->get_error(3); + } + } else { + $this->accepted = TRUE; + } + + return (bool) $this->accepted; + } + + + /** + * bool save_file ( string path[, int overwrite_mode] ); + * + * Cleans up the filename, copies the file from PHP's temp location to $path, + * and checks the overwrite_mode + * + * @param path (string) File path to your upload directory + * @param overwrite_mode (int) 1 = overwrite existing file + * 2 = rename if filename already exists (file.txt becomes file_copy0.txt) + * 3 = do nothing if a file exists + * + */ + function save_file($path, $nu_name="", $overwrite_mode="3"){ + if ($this->error) { + return false; + } + + if (strlen($path)>0) { + if ($path[strlen($path)-1] != "/") { + $path = $path . "/"; + } + } + $this->path = $path; + $copy = ""; + $n = 1; + $success = false; + + if($this->accepted) { + // ff 220704 cambio el nombre por el nuevo + + if($nu_name != ""){ + $this->file["name"] = $nu_name; + } + + // ff + + // Clean up file name (only lowercase letters, numbers and underscores) + $this->file["name"] = ereg_replace("[^a-z0-9._]", "", str_replace(" ", "_", str_replace("%20", "_", strtolower($this->file["name"])))); + + // Clean up text file breaks + if(stristr($this->file["type"], "text")) { + $this->cleanup_text_file($this->file["tmp_name"]); + } + + // get the raw name of the file (without its extention) + if(ereg("(\.)([a-z0-9]{2,5})$", $this->file["name"])) { + $pos = strrpos($this->file["name"], "."); + if(!$this->file["extention"]) { + $this->file["extention"] = substr($this->file["name"], $pos, strlen($this->file["name"])); + } + $this->file['raw_name'] = substr($this->file["name"], 0, $pos); + } else { + $this->file['raw_name'] = $this->file["name"]; + if ($this->file["extention"]) { + $this->file["name"] = $this->file["name"] . $this->file["extention"]; + } + } + + switch((int) $overwrite_mode) { + case 1: // overwrite mode + if (@copy($this->file["tmp_name"], $this->path . $this->file["name"])) { + $success = true; + } else { + $success = false; + $this->error = $this->get_error(5); + } + break; + case 2: // create new with incremental extention + while(file_exists($this->path . $this->file['raw_name'] . $copy . $this->file["extention"])) { + $copy = "_copy" . $n; + $n++; + } + $this->file["name"] = $this->file['raw_name'] . $copy . $this->file["extention"]; + if (@copy($this->file["tmp_name"], $this->path . $this->file["name"])) { + $success = true; + } else { + $success = false; + $this->error = $this->get_error(5); + } + break; + default: // do nothing if exists, highest protection + if(file_exists($this->path . $this->file["name"])){ + $this->error = $this->get_error(4); + $success = false; + } else { + if (@copy($this->file["tmp_name"], $this->path . $this->file["name"])) { + $success = true; + } else { + $success = false; + $this->error = $this->get_error(5); + } + } + break; + } + + if(!$success) { unset($this->file['tmp_name']); } + return (bool) $success; + } else { + $this->error = $this->get_error(3); + return FALSE; + } + } + + + /** + * string get_error(int error_code); + * + * Gets the correct error message for language set by constructor + * + * @param error_code (int) error code + * + */ + function get_error($error_code='') { + $error_message = array(); + $error_code = (int) $error_code; + + switch ( $this->language ) { + // French (fr) + case 'fr': + $error_message[0] = "Aucun fichier n'a été envoyé"; + $error_message[1] = "Taille maximale autorisée dépassée. Le fichier ne doit pas être plus gros que " . $this->max_filesize/1000 . " Ko (" . $this->max_filesize . " octets)."; + $error_message[2] = "Taille de l'image incorrecte. L'image ne doit pas dépasser " . $this->max_image_width . " pixels de large sur " . $this->max_image_height . " de haut."; + $error_message[3] = "Type de fichier incorrect. Seulement les fichiers de type " . str_replace("|", " or ", $this->acceptable_file_types) . " sont autorisés."; + $error_message[4] = "Fichier '" . $this->path . $this->file["name"] . "' déjá existant, écrasement interdit."; + $error_message[5] = "La permission a nié. Incapable pour copier le fichier á '" . $this->path . "'"; + break; + + // German (de) + case 'de': + $error_message[0] = "Es wurde keine Datei hochgeladen"; + $error_message[1] = "Maximale Dateigrösse überschritten. Datei darf nicht grösser als " . $this->max_filesize/1000 . " KB (" . $this->max_filesize . " bytes) sein."; + $error_message[2] = "Maximale Bildgrösse überschritten. Bild darf nicht grösser als " . $this->max_image_width . " x " . $this->max_image_height . " pixel sein."; + $error_message[3] = "Nur " . str_replace("|", " oder ", $this->acceptable_file_types) . " Dateien dürfen hochgeladen werden."; + $error_message[4] = "Datei '" . $this->path . $this->file["name"] . "' existiert bereits."; + $error_message[5] = "Erlaubnis hat verweigert. Unf&amul;hig, Akte zu '" . $this->path . "'"; + break; + + // Dutch (nl) + case 'nl': + $error_message[0] = "Er is geen bestand geupload"; + $error_message[1] = "Maximum bestandslimiet overschreden. Bestanden mogen niet groter zijn dan " . $this->max_filesize/1000 . " KB (" . $this->max_filesize . " bytes)."; + $error_message[2] = "Maximum plaatje omvang overschreven. Plaatjes mogen niet groter zijn dan " . $this->max_image_width . " x " . $this->max_image_height . " pixels."; + $error_message[3] = "Alleen " . str_replace("|", " of ", $this->acceptable_file_types) . " bestanden mogen worden geupload."; + $error_message[4] = "Bestand '" . $this->path . $this->file["name"] . "' bestaat al."; + $error_message[5] = "Toestemming is geweigerd. Kon het bestand niet naar '" . $this->path . "' copieren."; + //$error_message[5] = "Toestemming ontkende. Onbekwaam dossier aan '" . $this->path . "'"; + break; + + // Italian (it) + case 'it': + $error_message[0] = "Il file non e' stato salvato"; + $error_message[1] = "Il file e' troppo grande. La dimensione massima del file e' " . $this->max_filesize/1000 . " Kb (" . $this->max_filesize . " bytes)."; + $error_message[2] = "L'immagine e' troppo grande. Le dimensioni massime non possono essere superiori a " . $this->max_image_width . " pixel di larghezza per " . $this->max_image_height . " d'altezza."; + $error_message[3] = "Il tipo di file non e' valido. Solo file di tipo " . str_replace("|", " o ", $this->acceptable_file_types) . " sono autorizzati."; + $error_message[4] = "E' gia' presente un file con nome " . $this->path . $this->file["name"]; + $error_message[5] = "Permesso negato. Impossibile copiare il file in '" . $this->path . "'"; + break; + + // Finnish + case 'fi': + $error_message[0] = "Tiedostoa ei l&amul;hetetty."; + $error_message[1] = "Tiedosto on liian suuri. Tiedoston koko ei saa olla yli " . $this->max_filesize/1000 . " KB (" . $this->max_filesize . " tavua)."; + $error_message[2] = "Kuva on liian iso. Kuva ei saa olla yli " . $this->max_image_width . " x " . $this->max_image_height . " pikseli&amul;."; + $error_message[3] = "Vain " . str_replace("|", " tai ", $this->acceptable_file_types) . " tiedostoja voi tallentaa kuvapankkiin."; + $error_message[4] = "Tiedosto '" . $this->path . $this->file["name"] . "' on jo olemassa."; + $error_message[5] = "Ei k&amul;yttöoikeutta. Tiedostoa ei voi kopioida hakemistoon '" . $this->path . "'"; + break; + + // Spanish + case 'es': + $error_message[0] = "No se subió ningún archivo."; + $error_message[1] = "Se excedió el tamaño máximo del archivo. El archivo no puede ser mayor a " . $this->max_filesize/1000 . " KB (" . $this->max_filesize . " bytes)."; + $error_message[2] = "Se excedieron las dimensiones de la imagen. La imagen no puede medir más de " . $this->max_image_width . " (w) x " . $this->max_image_height . " (h) pixeles."; + $error_message[3] = "El tipo de archivo no es válido. Sólo los archivos " . str_replace("|", " o ", $this->acceptable_file_types) . " son permitidos."; + $error_message[4] = "El archivo '" . $this->path . $this->file["name"] . "' ya existe."; + $error_message[5] = "Permiso denegado. No es posible copiar el archivo a '" . $this->path . "'"; + break; + + // Norwegian + case 'no': + $error_message[0] = "Ingen fil ble lastet opp."; + $error_message[1] = "Max filstørrelse ble oversteget. Filen kan ikke være større ennn " . $this->max_filesize/1000 . " KB (" . $this->max_filesize . " byte)."; + $error_message[2] = "Max bildestørrelse ble oversteget. Bildet kan ikke være større enn " . $this->max_image_width . " x " . $this->max_image_height . " piksler."; + $error_message[3] = "Bare " . str_replace("|", " tai ", $this->acceptable_file_types) . " kan lastes opp."; + $error_message[4] = "Filen '" . $this->path . $this->file["name"] . "' finnes fra før."; + $error_message[5] = "Tilgang nektet. Kan ikke kopiere filen til '" . $this->path . "'"; + break; + + // Danish + case 'da': + $error_message[0] = "Ingen fil blev uploaded"; + $error_message[1] = "Den maksimale filstørrelse er overskredet. Filerne må ikke være større end " . $this->max_filesize/1000 . " KB (" . $this->max_filesize . " bytes)."; + $error_message[2] = "Den maksimale billedstørrelse er overskredet. Billeder må ikke være større end " . $this->max_image_width . " x " . $this->max_image_height . " pixels."; + $error_message[3] = "Kun " . str_replace("|", " or ", $this->acceptable_file_types) . " kan uploades."; + $error_message[4] = "Filen '" . $this->path . $this->file["name"] . "' eksisterer allerede."; + $error_message[5] = "Adgang nægtet! Er ikke i stand til at kopiere filen til '" . $this->path . "'"; + break; + + + // English + default: + $error_message[0] = "No file was uploaded"; + $error_message[1] = "Maximum file size exceeded. File may be no larger than " . $this->max_filesize/1000 . " KB (" . $this->max_filesize . " bytes)."; + $error_message[2] = "Maximum image size exceeded. Image may be no more than " . $this->max_image_width . " x " . $this->max_image_height . " pixels."; + $error_message[3] = "Only " . str_replace("|", " or ", $this->acceptable_file_types) . " files may be uploaded."; + $error_message[4] = "File '" . $this->path . $this->file["name"] . "' already exists."; + $error_message[5] = "Permission denied. Unable to copy file to '" . $this->path . "'"; + break; + } + + // for backward compatability: + $this->errors[$error_code] = $error_message[$error_code]; + + return $error_message[$error_code]; + } + + + /** + * void cleanup_text_file (string file); + * + * Convert Mac and/or PC line breaks to UNIX by opening + * and rewriting the file on the server + * + * @param file (string) Path and name of text file + * + */ + function cleanup_text_file($file){ + // chr(13) = CR (carridge return) = Macintosh + // chr(10) = LF (line feed) = Unix + // Win line break = CRLF + $new_file = ''; + $old_file = ''; + $fcontents = file($file); + while (list ($line_num, $line) = each($fcontents)) { + $old_file .= $line; + $new_file .= str_replace(chr(13), chr(10), $line); + } + if ($old_file != $new_file) { + // Open the uploaded file, and re-write it with the new changes + $fp = fopen($file, "w"); + fwrite($fp, $new_file); + fclose($fp); + } + } + + + function resize($filename, $max_width, $max_height, $quality=80) { + + // Proportionally resize the image to the max sizes specified above + $x_ratio = $max_width / $this->file["width"]; + $y_ratio = $max_height / $this->file["height"]; + $retamanha = true; + + if( ($this->file["width"] <= $max_width) && ($this->file["height"] <= $max_height) ) { + $tn_width = $this->file["width"]; + $tn_height = $this->file["height"]; + } elseif (($x_ratio * $this->file["height"]) < $max_height) { + $tn_height = ceil($x_ratio * $this->file["height"]); + $tn_width = $max_width; + } else { + $tn_width = ceil($y_ratio * $this->file["width"]); + $tn_height = $max_height; + } + $dest_x = ($max_width - $tn_width) / 2; + $dest_y = ($max_height - $tn_height) / 2; + // Increase memory limit to support larger files + ini_set('memory_limit', '32M'); + + // Create the new image! + if($this->file["extention"] == '.jpg') { + $src = imageCreateFromJpeg($this->path . $this->file["name"]); + } elseif ($this->file["extention"] == '.gif') { + $src = imageCreateFromGif($this->path . $this->file["name"]); + } else { + return; // una salida poco elegante + } + if($src) { + $dst = imageCreateTrueColor($max_width, $max_height); + if($dst) { + $bgColor = imagecolorallocate($dst, 255,255,255); + ImageFilledRectangle ($dst, 0, 0, $max_width, $max_height, $bgColor); + + imageCopyResampled($dst, $src, $dest_x, $dest_y, 0, 0, $tn_width, $tn_height, $this->file["width"], $this->file["height"]); + + imagejpeg($dst, $this->path . $filename, $quality); + + imageDestroy($dst); + } + imageDestroy($src); + } + } + + function crop($filename, $max_width, $max_height, $percent=1.0, $quality=80) { + + $new_width = $this->file["width"] * $percent; + $new_height = $this->file["height"] * $percent; + + // Increase memory limit to support larger files + ini_set('memory_limit', '32M'); + + // Create the new image! + if($this->file["extention"] == '.jpg') { + $src = imageCreateFromJpeg($this->path . $this->file["name"]); + } elseif ($this->file["extention"] == '.gif') { + $src = imageCreateFromGif($this->path . $this->file["name"]); + } else { + return; // una salida poco elegante + } + if($src) { + $dst = imageCreateTrueColor($max_width, $max_height); + if($dst) { + $bgColor = imagecolorallocate($dst, 255,255,255); + ImageFilledRectangle ($dst, 0, 0, $max_width, $max_height, $bgColor); + + imageCopyResampled($dst, $src, -($new_width/2) + ($max_width/2), -($new_height/2) + ($max_height/2), 0, 0, $new_width, $new_height, $this->file["width"], $this->file["height"]); + + imagejpeg($dst, $this->path . $filename, $quality); + + imageDestroy($dst); + } + imageDestroy($src); + } + } + + function delete_file() { + @unlink($this->path . $this->file["name"]); + } +} + + + + + + +/* + + + fileupload-class.php can be used to upload files of any type + to a web server using a web browser. The uploaded file's name will + get cleaned up - special characters will be deleted, and spaces + get replaced with underscores, and moved to a specified + directory (on your server). fileupload-class.php also does its best to + determine the file's type (text, GIF, JPEG, etc). If the user + has named the file with the correct extension (.txt, .gif, etc), + then the class will use that, but if the user tries to upload + an extensionless file, PHP does can identify text, gif, jpeg, + and png files for you. As a last resort, if there is no + specified extension, and PHP can not determine the type, you + can set a default extension to be added. + + SETUP: + Make sure that the directory that you plan on uploading + files to has enough permissions for your web server to + write/upload to it. (usually, this means making it world writable) + - cd /your/web/dir + - chmod 777 + + The HTML FORM used to upload the file should look like this: +
+ + +
+ + + USAGE: + // Create a new instance of the class + $my_uploader = new uploader; + + // OPTIONAL: set the max filesize of uploadable files in bytes + $my_uploader->max_filesize(90000); + + // OPTIONAL: if you're uploading images, you can set the max pixel dimensions + $my_uploader->max_image_size(150, 300); // max_image_size($width, $height) + + // UPLOAD the file + $my_uploader->upload("userfile", "", ".jpg"); + + // MOVE THE FILE to its final destination + // $mode = 1 :: overwrite existing file + // $mode = 2 :: rename new file if a file + // with the same name already + // exists: file.txt becomes file_copy0.txt + // $mode = 3 :: do nothing if a file with the + // same name already exists + $my_uploader->save_file("/your/web/dir/fileupload_dir", int $mode); + + // Check if everything worked + if ($my_uploader->error) { + echo $my_uploader->error . "
"; + + } else { + // Successful upload! + $file_name = $my_uploader->file['name']; + print($file_name . " was successfully uploaded!"); + + } + +
+ + + + + ///// fileupload-class.php ///// + Copyright (c) 1999, 2002, 2003 David Fox, Angryrobot Productions + All rights reserved. + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions + are met: + 1. Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + 2. Redistributions in binary form must reproduce the above + copyright notice, this list of conditions and the following + disclaimer in the documentation and/or other materials provided + with the distribution. + 3. Neither the name of author nor the names of its contributors + may be used to endorse or promote products derived from this + software without specific prior written permission. + + DISCLAIMER: + THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS "AS IS" + AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED + TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A + PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR + CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF + USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED + AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING + IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF + THE POSSIBILITY OF SUCH DAMAGE. + + + +*/ +?> diff --git a/src/addCandidato.php b/src/addCandidato.php index 5234fad..0d5b003 100644 --- a/src/addCandidato.php +++ b/src/addCandidato.php @@ -106,6 +106,9 @@ if(stripinput($_POST['action'])=="add"){ $candidatoNew->addPerfiles($_POST['perfil']); $candidatoNew->addCurriculum($_FILES['userfile']); + //Subimos la foto + uploadImagenCandidato($idCandidatoNew, 250, 250, 150, 150); + header("Location: detalle_candidato.php?oid=".$idCandidatoNew); } else { $tipomsg="error"; @@ -224,6 +227,8 @@ echo ''; //CAMPO FOTO echo ''; +echo $locale['Candidato006'] .':
'; +echo ''; echo''; echo ''; diff --git a/src/detalles_usuario.php b/src/detalles_usuario.php index 88bf8bd..09e0c24 100644 --- a/src/detalles_usuario.php +++ b/src/detalles_usuario.php @@ -102,7 +102,13 @@ if ($msg != "") { getValor("localidad")); ?> - + + getValor("oid"))) { + echo ''; + } + ?> + diff --git a/src/gestion_candidato.php b/src/gestion_candidato.php index 1407e40..c7bb11a 100644 --- a/src/gestion_candidato.php +++ b/src/gestion_candidato.php @@ -135,6 +135,9 @@ switch ($action) { $candidato->addPerfiles($_POST['perfil']); $candidato->addCurriculum($_FILES['userfile']); + //Subimos la foto + uploadImagenCandidato($_GET ['oid'], 250, 250, 150, 150); + $mensaje=$locale['1583']; $tipomsg="ok"; $candidato=new Candidato($usuario,$_GET ['oid']); @@ -284,6 +287,13 @@ echo ''; //CAMPO FOTO echo ''; +echo $locale['Candidato006'] .':
'; +echo '

'; + +if(tieneImagen($candidato->getValor("oid"))) { + echo ''; +} + echo''; echo ''; echo ''; diff --git a/src/idiomas/sp/lenguaje.php b/src/idiomas/sp/lenguaje.php index 91638d2..ab07bd9 100644 --- a/src/idiomas/sp/lenguaje.php +++ b/src/idiomas/sp/lenguaje.php @@ -148,6 +148,7 @@ $locale['Candidato002'] = "Disponibilidad para guardias:"; $locale['Candidato003'] = "Disponibilidad viajar:"; $locale['Candidato004'] = "Disponibilidad proyectos internacionales:"; $locale['Candidato005'] = "Carnet de conducir:"; +$locale['Candidato006'] = "Foto"; $locale['Capacidades001'] = "CAPACIDADES PROFESIONALES"; $locale['Capacidades002_0'] = "Perfil funcional*:"; $locale['Capacidades002_1'] = "Perfil funcional*:";