Ver Mensaje Individual
  #1 (permalink)  
Antiguo 18/02/2008, 16:02
gesking
 
Fecha de Ingreso: diciembre-2006
Mensajes: 294
Antigüedad: 17 años, 4 meses
Puntos: 2
Tamaño imagen

Hola, tengo un sistema para subir imagenes. Me gustarñia podes tener la eleccion de poder modificar los tamaños de las mismas... El tema es que no me anda mi script.

Este es el formulario
Código PHP:
<form action="prueba.php" method="post" enctype="multipart/form-data" name="form1" id="form1">
        <
span class="Estilo2"><strong>Nombre</strong> <span class="Estilo1">(Opcional)</span></span> <br />
        <
input name="nombre" type="text" id="archivo" class="file" style="width:150px"><br /><br />
        <
strong>Archivo</strong> <br />
        <
input name="archivo" type="file" id="archivo" class="file" style="width:150px"><br /><br />
        <
strong>Tamaño</strong> <br />
        <
br /><br />
<
select name="nuevo_tamano">
<
option value="1" selected="selected">Dejar tamaño original</option>
<
option value="2">100x75 (Avatar)</option>
<
option value="3">150x112 (Vista previa)</option>
<
option value="4">250x250 (Vista previa)</option>
<
option value="5" selected>450x450 (Para ForosBlogs y Spaces!)</option>
<
option value="6">640x480 (Para mensaje en foros)</option>
<
option value="7">800x600 (monitor de 15")</option>
<option value="
8">1024x768 (monitor de 17")</option>
<
option value="9">1280x1024 (monitor de 19")</option>
</select>
        <br /><br />
        <input name="
boton" id="boton" class="boton" type="submit" value="Subir Imagen!" />
      </form> 
Este es el proceso
Código PHP:
if(isset($_POST['boton'])){

$tipo $_FILES['archivo']['type'];
$tamaño $_FILES['archivo']['size'];
$nombre $_POST['nombre'];
$nuevo_tamano $_POST['nuevo_tamano'];

if(
$nuevo_tamano>1){

function 
redimensionar_imagen($imagen$nombre_imagen_asociada)
    {
        
//indicamos el directorio donde se van a colgar las imágenes
        
$directorio ".";
        
//establecemos los límites de ancho y alto
if($nuevo_tamano==2){
$nuevo_ancho 100 ;
$nuevo_alto 75 ;
}
elseif(
$nuevo_tamano==3){
$nuevo_ancho 150 ;
$nuevo_alto 112 ;
}
elseif(
$nuevo_tamano==4){
$nuevo_ancho 250 ;
$nuevo_alto 250 ;
}
elseif(
$nuevo_tamano==5){
$nuevo_ancho 450 ;
$nuevo_alto 450 ;
}
elseif(
$nuevo_tamano==6){
$nuevo_ancho 640 ;
$nuevo_alto 480 ;
}
elseif(
$nuevo_tamano==7){
$nuevo_ancho 800 ;
$nuevo_alto 600 ;
}
elseif(
$nuevo_tamano==8){
$nuevo_ancho 1024 ;
$nuevo_alto 768 ;
}
else{
$nuevo_ancho 1280 ;
$nuevo_alto 1024 ;
}
       
        
//Recojo información de la imágen
        
$info_imagen getimagesize($imagen);
        
$alto $info_imagen[1];
        
$ancho $info_imagen[0];
        
$tipo_imagen $info_imagen[2];
       
        
// dependiendo del tipo de imagen tengo que usar diferentes funciones
        
switch ($tipo_imagen) {
            case 
1//si es gif …
                
$imagen_nueva imagecreate($nuevo_ancho$nuevo_alto);
                
$imagen_vieja imagecreatefromgif($imagen);
                
//cambio de tamaño…
                
imagecopyresampled($imagen_nueva$imagen_vieja0000$nuevo_ancho$nuevo_alto$ancho$alto);
                if (!
imagegif($imagen_nueva$directorio $nombre_imagen_asociada)) return false;
            break;
           
            case 
2//si es jpeg …
                
$imagen_nueva imagecreatetruecolor($nuevo_ancho$nuevo_alto);
                
$imagen_vieja imagecreatefromjpeg($imagen);
                
//cambio de tamaño…
                
imagecopyresampled($imagen_nueva$imagen_vieja0000$nuevo_ancho$nuevo_alto$ancho$alto);
                if (!
imagejpeg($imagen_nueva$directorio $nombre_imagen_asociada)) return false;
            break;
           
            case 
3//si es png …
                
$imagen_nueva imagecreatetruecolor($nuevo_ancho$nuevo_alto);
                
$imagen_vieja imagecreatefrompng($imagen);
                
//cambio de tamaño…
                
imagecopyresampled($imagen_nueva$imagen_vieja0000$nuevo_ancho$nuevo_alto$ancho$alto);
                if (!
imagepng($imagen_nueva$directorio $nombre_imagen_asociada)) return false;
            break;
        }
        return 
true//si todo ha ido bien devuelve true
    
}


if (
is_uploaded_file($HTTP_POST_FILES['archivo']['tmp_name'])) {

if(
$HTTP_POST_FILES['archivo']['size'] < 1000000) {

if(
$tipo=="image/gif" || $tipo=="image/jpeg" || $tipo=="image/png" || $tipo=="image/jpg" || $tipo=="image/pjpeg" || $tipo=="image/x-png") {

copy($_FILES['archivo']['tmp_name'], $HTTP_POST_FILES['archivo']['name']);

$usuario $mostrar[username];
$info pathinfo($HTTP_POST_FILES['archivo']['name']);
$aleatorio substr(md5(uniqid(rand())),0,10).".".strtolower($info['extension']);
$imagen $usuario."_".$aleatorio;

redimensionar_imagen($HTTP_POST_FILES['archivo']['name'], $imagen);

$dia date ("d");
$mes date ("m");
$ano date ("Y");
$fecha $dia."-".$mes."-".$ano;

$query "INSERT INTO imagenes (username, nombre, imagen, fecha) VALUES('$usuario', '$nombre', '$imagen', '$fecha')";
mysql_query($query) or die(mysql_error());

$subio true;
}
}
}
}else{
if (
is_uploaded_file($HTTP_POST_FILES['archivo']['tmp_name'])) {

if(
$HTTP_POST_FILES['archivo']['size'] < 1000000) {

if(
$tipo=="image/gif" || $tipo=="image/jpeg" || $tipo=="image/png" || $tipo=="image/jpg" || $tipo=="image/pjpeg" || $tipo=="image/x-png") {

$usuario $mostrar[username];
$info pathinfo($_FILES['archivo']['name']);
$aleatorio substr(md5(uniqid(rand())),0,10).".".strtolower($info['extension']);
$imagen $usuario."_".$aleatorio;
copy($_FILES['archivo']['tmp_name'], $imagen);

$dia date ("d");
$mes date ("m");
$ano date ("Y");
$fecha $dia."-".$mes."-".$ano;

$query "INSERT INTO imagenes (username, nombre, imagen, fecha) VALUES('$usuario', '$nombre', '$imagen', '$fecha')";
mysql_query($query) or die(mysql_error());

$subio true;
}
}
}
}

   if(
$subio) {
   
$ultimo mysql_query("SELECT id,imagen FROM hostimage_imagenes WHERE imagen = '$imagen'") or die("Error: ".mysql_error());
$ver mysql_fetch_array($ultimo);
echo 
$imagen;
   } else {
      echo 
'<table width="100%" border="0" cellspacing="0" cellpadding="0">
  <tr>
    <td width="150"><img src="imagenes/error.jpg"></td>
    <td width="*">El archivo no se pudo enviar. Recuerda que debe ser un archivo JPG, GIF o PNG y el tamaño no puede exceder 1MB</td>
  </tr>
</table>'
;
   }

Si yo elijo "no cambiar el tamaño" me la sube de 10, si elijo un tamaño me la sube sin cambiar nada... aparece en blanco y no me sube nada....