Foros del Web » Programando para Internet » PHP »

Formulario con redimension de fotos

Estas en el tema de Formulario con redimension de fotos en el foro de PHP en Foros del Web. 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 ...
  #1 (permalink)  
Antiguo 09/03/2011, 14:31
 
Fecha de Ingreso: mayo-2009
Mensajes: 27
Antigüedad: 14 años, 11 meses
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
  #2 (permalink)  
Antiguo 09/03/2011, 14:37
 
Fecha de Ingreso: mayo-2009
Mensajes: 27
Antigüedad: 14 años, 11 meses
Puntos: 0
Respuesta: Formulario con redimension de fotos

esto son los poquitos horrores que me dice que tiene, ademas no me copia las fotos
hace un año hice uno asi y funcionaba, casi bien pero nunca lo termina por otros temas y ahora justo lo necesito para mi pagina personal y no anda ni pa delante ni pa tras
Cita:
Notice: Undefined index: userfile in C:\xampp\htdocs\remeras\subirestampados.php on line 11

Notice: Undefined index: userfile in C:\xampp\htdocs\remeras\subirestampados.php on line 12

Notice: Undefined index: userfile in C:\xampp\htdocs\remeras\subirestampados.php on line 13

Notice: Undefined offset: 1 in C:\xampp\htdocs\remeras\subirestampados.php on line 15
La extensión o el tamaño de los archivos no es correcta.

# Se permiten archivos .gif o .jpg
# se permiten archivos de 100 Kb máximo.

Warning: imagecreatefromjpeg(estampas/1.) [function.imagecreatefromjpeg]: failed to open stream: No such file or directory in C:\xampp\htdocs\remeras\funciones\redimencion.php on line 5

Warning: getimagesize(estampas/1.) [function.getimagesize]: failed to open stream: No such file or directory in C:\xampp\htdocs\remeras\funciones\redimencion.php on line 12

Warning: Division by zero in C:\xampp\htdocs\remeras\funciones\redimencion.php on line 17

Warning: imagecreatetruecolor() [function.imagecreatetruecolor]: Invalid image dimensions in C:\xampp\htdocs\remeras\funciones\redimencion.php on line 25

Warning: imagecopyresampled() expects parameter 1 to be resource, boolean given in C:\xampp\htdocs\remeras\funciones\redimencion.php on line 26

Warning: imagejpeg() expects parameter 1 to be resource, boolean given in C:\xampp\htdocs\remeras\funciones\redimencion.php on line 29

Warning: imagecreatefromjpeg(estampas/1.) [function.imagecreatefromjpeg]: failed to open stream: No such file or directory in C:\xampp\htdocs\remeras\funciones\crearthumb.php on line 5

Warning: getimagesize(estampas/1.) [function.getimagesize]: failed to open stream: No such file or directory in C:\xampp\htdocs\remeras\funciones\crearthumb.php on line 12

Warning: Division by zero in C:\xampp\htdocs\remeras\funciones\crearthumb.php on line 17

Warning: imagecreatetruecolor() [function.imagecreatetruecolor]: Invalid image dimensions in C:\xampp\htdocs\remeras\funciones\crearthumb.php on line 25

Warning: imagecopyresampled() expects parameter 1 to be resource, boolean given in C:\xampp\htdocs\remeras\funciones\crearthumb.php on line 26

Warning: imagejpeg() expects parameter 1 to be resource, boolean given in C:\xampp\htdocs\remeras\funciones\crearthumb.php on line 29
  #3 (permalink)  
Antiguo 10/03/2011, 09:37
Avatar de mayid
Colaborador
 
Fecha de Ingreso: marzo-2009
Ubicación: BsAs
Mensajes: 4.014
Antigüedad: 15 años, 1 mes
Puntos: 101
Respuesta: Formulario con redimension de fotos

Yo veo el error en el html. Es tal cual te dice PHP! Error porque no existe el campo "userfile"!

Mira lo que tenes en tu html:
<input type="file" name:"userfile" />

Eso no es html valido y es de esperar que no llegue a destino. Los atributos usan el signo =

El resto de los errores quizas esten encadenados. Ya nos contarás.
  #4 (permalink)  
Antiguo 10/03/2011, 10:45
 
Fecha de Ingreso: mayo-2009
Mensajes: 27
Antigüedad: 14 años, 11 meses
Puntos: 0
Respuesta: Formulario con redimension de fotos

les dije que era una estupidez, nunca me fije en el html
muchas gracias loco
funciono a bien

Etiquetas: formulariofoto, redimensionar
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 22:41.