Ver Mensaje Individual
  #1 (permalink)  
Antiguo 09/03/2011, 14:31
hebolli85
 
Fecha de Ingreso: mayo-2009
Mensajes: 27
Antigüedad: 15 años
Puntos: 0
Formulario con redimension de fotos

Bueno, estoy en un proyecto personal, es una pagina propia y estoy creando un formulario que lleva a la base da dato estos parametros
id
titulo
descripcion
codigo
imagen
fecha

Bueno tambien lo que hace es redimencionar las fotos, y es ahi donde tengo el mayor problema ese y el de subir la foto al servidor

Código HTML:
El formulario
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Subir Fotos</title>
</head>
<form action="subirestampados.php" method="post" enctype="multipart/form-data">

<center><b>Descripcion: </b><input type="text" name="descripcion" size="20px" maxlength="100" /><br /><br />
<b>Titulo: </b><input type="text" name="titulo" size="20px" maxlength="100" /><br />
<b>codigo: </b><input type="text" name="codigo" size="20px" maxlength="100" /><br />
<input type="hidden" name="MAX_FILE_SIZE" value="250000" />
<br />
<b>Enviar un archivo nuevo</b><br />
<br />
<input type="file" name:"userfile" /><br />
<br />
<input type="submit" value="Subir" /></center><br />
</form>

<body>
</body>
</html> 
el archivo a donde llegan los datos
Código PHP:
<?
    $img_titulo 
$_POST['titulo'];
    
$img_descripcion $_POST['descripcion'];
    
$codigo $_POST['codigo'];//codigo de la foto
    
$img_date date("Y-m-d");

    
//echo $img_titulo ." " . $img_descripcion ." ". $img_date; // probando si llegan las variables

//imagen
//datos del arhivo
$nombre_archivo $_FILES['userfile']['name'];
$tipo_archivo $_FILES['userfile']['type'];
$tamano_archivo $_FILES['userfile']['size'];
$ext=explode("/",$tipo_archivo);
$nombreimagen=$codigo.".".$ext[1];
//compruebo si las características del archivo son las que deseo
if (!((strpos($tipo_archivo"gif") || strpos($tipo_archivo"jpeg")) && ($tamano_archivo 5000000))) {
    echo 
"La extensión o el tamaño de los archivos no es correcta. <br><br><table><tr><td><li>Se permiten archivos .gif o .jpg<br><li>se permiten archivos de 100 Kb máximo.</td></tr></table>";
}else{
    if (
move_uploaded_file($_FILES['userfile']['tmp_name'], "estampas/" $nombreimagen)){
       echo 
"El archivo ha sido cargado correctamente.";
    }else{
       echo 
"Ocurrió algún error al subir el fichero. No pudo guardarse.";
    }
}
$caratula="estampas/".$nombreimagen;

include(
"funciones/redimencion.php");
    
redimensionar_jpeg($caratula$caratula100);

include(
"funciones/crearthumb.php");
    
$thumbcaratulas="thums/".$nombreimagen;
    
crearthumb($caratula,$thumbcaratulas,120,120);

$imagen='<img src="estampas/'.$nombreimagen.'" >';
include(
"conexion.php");
$alta="INSERT INTO `video`.`dvd` (
`img_id` ,
`img_titulo` ,
`img_codigo` ,
`img_descripcion` ,
`img_direccion` ,
`img_date`
)
VALUES (
NULL , '$img_titulo', '$img_descripcion', '$codigo', '$imagen', '$img_date');"
;
        
mysql_query($alta);
        
mysql_close();
    
?>
los script de redimension
Código PHP:
<?php 
function redimensionar_jpeg($img_original$img_nueva$img_nueva_calidad
{
     
// crear imagen desde original
    
$img imagecreatefromjpeg($img_original);
     
     
// redimensionar imagen original copiandola en la imagen
    
    
$anchura=640;//altura que deseas
    
$hmax=480;//ancho que quieres
    
    
$datos getimagesize($img_original);
    if(
$datos[2]==1){$img = @imagecreatefromgif($img_original);}
    if(
$datos[2]==2){$img = @imagecreatefromjpeg($img_original);}
    if(
$datos[2]==3){$img = @imagecreatefrompng($img_original);}
    
$ratio = ($datos[0] / $anchura);
    
$altura = ($datos[1] / $ratio);

    if(
$altura>$hmax)
    {
        
$anchura2=$hmax*$anchura/$altura;
        
$altura=$hmax;$anchura=$anchura2;
    }
    
    
$thumb imagecreatetruecolor($anchura,$altura);
    
imagecopyresampled($thumb$img0000$anchura$altura$datos[0], $datos[1]);
     
    
// guardar la imagen redimensionada donde indica $img_nueva
    
imagejpeg($thumb,$img_nueva,$img_nueva_calidad);
}  
?>
Código PHP:
<?php 
function crearthumb($img_original$img_nueva$img_nueva_calidad
{
     
// crear imagen desde original
    
$img imagecreatefromjpeg($img_original);
     
     
// redimensionar imagen original copiandola en la imagen
    
    
$anchura=120;//altura que deseas
    
$hmax=120;//ancho que quieres
    
    
$datos getimagesize($img_original);
    if(
$datos[2]==1){$img = @imagecreatefromgif($img_original);}
    if(
$datos[2]==2){$img = @imagecreatefromjpeg($img_original);}
    if(
$datos[2]==3){$img = @imagecreatefrompng($img_original);}
    
$ratio = ($datos[0] / $anchura);
    
$altura = ($datos[1] / $ratio);

    if(
$altura>$hmax)
    {
        
$anchura2=$hmax*$anchura/$altura;
        
$altura=$hmax;$anchura=$anchura2;
    }
    
    
$thumb imagecreatetruecolor($anchura,$altura);
    
imagecopyresampled($thumb$img0000$anchura$altura$datos[0], $datos[1]);
     
    
// guardar la imagen redimensionada donde indica $img_nueva
    
imagejpeg($thumb,$img_nueva,$img_nueva_calidad);
}  
?>
y el archivo de conexion
Código PHP:
<?php
    $server
="localhost";
    
$usuario_db="root";
    
$clave_db="";
    
$base="remeras";
    
$id_con mysql_connect($server$usuario_db$clave_db);
    
mysql_select_db($base$id_con);
?>

debe ser una tonteria que no la veo, hace unos dias estoy y ya no se me ocurre nada
gracias de todas formas