Hola a todos, tengo una duda, estoy creando un script donde cuando un usuario suba una imagen, si esta imagen excede una medida (640px de ancho o 480px de alto) se redimencione a estas medidas, para asi la imagen no descuadre en el navegador, ya que quiero hacer una galeria con lightbox,
Bueno esta parte esta hecha pero no logro crear el thumbnail correspondiente a cada imagen :\
Alguna Idea?
Este es mi Script:
Espero me puedan decir que le falta para lo que quiero o que le sobra..
Gracias y Saludos
Código PHP:
<?php
$folder = "../../../galeria/blusas/";
$folder_mn = "../../../galeria/blusas/mn/";
$maxlimit = 5242880;
$allowed_ext = "jpg,gif,bmp,png,jpeg";
$overwrite = "no";
$match = "";
$filesize = $_FILES['userfile']['size'];
$caracteres = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789-_";
$rango = 6;
$max=strlen($caracteres)-1;
for ($i=0;$i<$rango;$i++) {
$filenamerand .= substr($caracteres, rand(0, $max), 1);}
$filename = ($filenamerand).".".end(explode('.',$_FILES['userfile']['name']));
$filename_mn = ($filenamerand)."-mn".".".end(explode('.',$_FILES['userfile']['name']));
$error = "";
$original = $_FILES['userfile']['name'];
$imagen = $_FILES['userfile']['tmp_name'];
$origen= $imagen;
$destino = $imagen;
$destino_temporal=tempnam("tmp/","tmp");
$maxsize[0] =640;
$maxsize[1] =480;
$size = GetImageSize($origen);
$width = $size[0];
$height = $size[1];
$ancho = $maxsize[0];
$alto = $maxsize[1];
if ($ancho && ($size[0] < $size[1])) {
$ancho = ($alto / $size[1]) * $size[0];
} else {
$alto = ($ancho / $size[0]) * $size[1];
}
redimensionar_jpeg($origen, $destino_temporal, $ancho, $alto, 100);
$fp=fopen($destino,"w");
fputs($fp,fread(fopen($destino_temporal,"r"),filesize($destino_temporal)));
fclose($fp);
function redimensionar_jpeg($img_original, $img_nueva, $img_nueva_anchura, $img_nueva_altura, $img_nueva_calidad)
{
$img = ImageCreateFromJPEG($img_original);
$thumb = imagecreatetruecolor($img_nueva_anchura,$img_nueva_altura);
ImageCopyResized($thumb,$img,0,0,0,0,$img_nueva_anchura,$img_nueva_altura,ImageSX($img),ImageSY($img));
ImageJPEG($thumb,$img_nueva,$img_nueva_calidad);
ImageDestroy($img);
}
if(!$filename || $filename==""){
$error = "- Ningún archivo selecccionado para subir.<br>";
}elseif(file_exists($folder.$filename) && $overwrite=="no"){
$error = "- El archivo <b>$filename</b> ya existe<br>";
}
if($filesize < 1){
$error .= "- Archivo vacío.<br>";
}elseif($filesize > $maxlimit){
$error .= "- Este archivo supera el máximo tamaño permitido.<br>";
}
$array_ext = explode (';',$allowed_ext);
$ext = strstr($filename['name'],'.');
$ext=substr($ext,1);
if (!in_array($ext,$array_ext)) {
$match = 1;
}
if(!$match){
$error .= "- Este tipo de archivo no está permitido: $filename<br>";
}
if($error){
print "Se ha producido el siguiente error al subir el archivo:<br> $error";
}else{
if(move_uploaded_file($imagen, $folder.$filename)){
mysql_connect('localhost','root','') or die('<b>Error conectando al servidor MySQL:</b><br />'.mysql_error());
mysql_select_db('cherry') or die('<b>Error seleccionando la base de datos:</b><br />'.mysql_error());
mysql_query("INSERT INTO blusas (id, imagen, nombre) VALUES ('', 'http://127.0.0.1/cherry Remodelacion/galeria/blusas/$filename', '$original')");
move_uploaded_file($imagen, $folder_mn.$filename_mn);
echo 'Se subio bien ';
echo $filename;
}else{
print "Error! Puede que el tamaño supere el máximo permitido por el servidor. Inténtelo de nuevo.";
}
?>