Ver Mensaje Individual
  #1 (permalink)  
Antiguo 18/02/2008, 16:02
gesking
 
Fecha de Ingreso: diciembre-2006
Mensajes: 294
Antigüedad: 19 años, 10 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 Foros, Blogs 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_vieja, 0, 0, 0, 0, $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_vieja, 0, 0, 0, 0, $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_vieja, 0, 0, 0, 0, $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....