les explico, quiero que el usuario al cargar una imagen esta se redimencione para que juege el papel de thumbnail, y la misma imagen que subio se redimencione a un tamaño maximo si es mas grande..
que estoy haciendo mal? D:
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'];
$global[0] = $_FILES['userfile']['tmp_name'];
$global[1] = $_FILES['userfile']['tmp_name'];
$imagen = $global[0];
$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);
}
$imagen_mn = $global[1];
$origen= $imagen_mn;
$destino = $imagen_mn;
$destino_temporal=tempnam("tmp/","tmp");
$maxsize[0] =200;
$maxsize[1] =200;
$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];
}
redimensionarmn_jpeg($origen, $destino_temporal, $ancho, $alto, 100);
$fp=fopen($destino,"w");
fputs($fp,fread(fopen($destino_temporal,"r"),filesize($destino_temporal)));
fclose($fp);
function redimensionarmn_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);
}
move_uploaded_file($imagen_mn, $folder_mn.$filename_mn);
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')");
echo 'Se subio bien ';
echo $filename;
}else{
print " Error";
}
}
?>