jueves, 18 de febrero de 2010

Subir imagenes al servidor con PHP

Realizando un trabajo me tope con esta “problemática” y tuve que realizar un script que aparte de subir imágenes al servidor realice una miniatura cuadrada de la misma. Para realizar la miniatura debemos tener en cuenta que el servidor tiene que tener instala la librería GD.

Para quienes quieran leer más de GD pueden hacerlo desde aquí, en resumen es una librería que nos hace más fácil la manipulación de imagenes cuando trabajamos en php.

Ahora vamos a ver el código:

//en primer lugar hice una funcion para controlar
//que lo que suban sea jpg
function checkMime($mimeType) {
switch( $mimeType )
{
case 'image/jpeg': return true; break;
case 'image/jpg': return true; break;
//si usamos Internet Explorer lo llama pjpeg
case 'image/pjpeg': return true; break;

default: return false; break;
}
}

//preguntamos si existe la variable $_FILES
if($_FILES["foto"]["name"]!="") {
$nombreFile =  $_FILES["foto"]["name"];
$tipoArchivo =  $_FILES["foto"]["type"];
//ahora comprobamos el tipo de archivo con la función anterior
if(checkMime($tipoArchivo)) {
$nombreArchivo = $nombreFile;
//con la funcion move_upload_file,
//subimos el archivo
if(move_uploaded_file($_FILES["foto"]['tmp_name'], '../img/' . $nombreArchivo)) {
//ahora creamos una imagen
//apartir de la original
$original = imagecreatefromjpeg('../img/' .  $nombreArchivo");
//le especificamos el tamaño
$thumb = imagecreatetruecolor(135,135); 150x150
//obtemeos el alto y ancho de la original
$ancho = imagesx($original);
$alto = imagesy($original);
imagecopyresampled($thumb,$original,0,0,0,0,135,135,$ancho,$alto);
// 90 es la calidad de compresión
imagejpeg($thumb, '../img/' . thumb.jpg", 90);
}
}

No hay comentarios:

Publicar un comentario