Foros del Web » Programando para Internet » PHP »

Problema creando miniaturas de imagenes

Estas en el tema de Problema creando miniaturas de imagenes en el foro de PHP en Foros del Web. El problema no es crear las miniaturas, las miniaturas las crea el problema me viene con el Código PHP: move_uploaded_file  . Hace solo el primero ...
  #1 (permalink)  
Antiguo 22/08/2009, 11:24
 
Fecha de Ingreso: octubre-2008
Ubicación: Andalucia
Mensajes: 23
Antigüedad: 15 años, 6 meses
Puntos: 0
Problema creando miniaturas de imagenes

El problema no es crear las miniaturas, las miniaturas las crea el problema me viene con el
Código PHP:
move_uploaded_file 
. Hace solo el primero de los 2 que tiene que hacer. Aqui les dejo el codigo, alguien me puede ayudar.


Cita:
<?php

include_once("conexion.php");

$dbh=conectar();
$id= $_REQUEST['id'];
$nombre=$_REQUEST['nombre'];
$fecha=$_REQUEST['fecha'];



if( $nombre==""){
header ("Location: inser_image.php");

}else{
if(isset($_FILES['archivo'])){

$imagen= $_FILES['archivo']['name'];
//Creacion de la miniatura

$filename= $_FILES['archivo']['tmp_name'];
// Resample
$image_p = imagecreatetruecolor(150, 150);
$image = imagecreatefromjpeg($filename);
list($width_orig, $height_orig) = getimagesize($filename);
imagecopyresampled($image_p, $image, 0, 0, 0, 0, 150, 150, $width_orig, $height_orig);

// Output
imagejpeg($image_p, $filename, 100);
move_uploaded_file($_FILES['archivo']['tmp_name'], "../images/galeria/".$_FILES['archivo']['name']);

move_uploaded_file($filename, "../images/galeria/thumbs/".$filename);

$sql="insert into imagenes (imagen_id,nombre, fecha, imagen) values ('$id','$nombre', '$fecha', '$imagen')";
$dbh->query($sql);

}
try{


}catch (PDOException $e){
echo "Error de desconexion: ". $e->GetMessage();
}

header("Location: menu_doc_image.php");
}

?>
  #2 (permalink)  
Antiguo 22/08/2009, 12:11
Avatar de abimaelrc
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: En el planeta de Puerto Rico
Mensajes: 14.734
Antigüedad: 14 años, 11 meses
Puntos: 1517
Respuesta: Problema creando miniaturas de imagenes

¿Cual es el error que te muestra?
__________________
Verifica antes de preguntar.
Los verdaderos amigos se hieren con la verdad, para no perderlos con la mentira. - Eugenio Maria de Hostos
  #3 (permalink)  
Antiguo 22/08/2009, 12:16
 
Fecha de Ingreso: octubre-2008
Ubicación: Andalucia
Mensajes: 23
Antigüedad: 15 años, 6 meses
Puntos: 0
Respuesta: Problema creando miniaturas de imagenes

no me muestra ningun errror. me introduce la tupla en la base de datos y me copia la imagen al directorio primero ke ponga, si pongo el thumb primero pues me mete la imagen a 150x150 alli y si pongo el otro me mete la imagen a 150x150 dond m tendria ke meter la imagen normal
  #4 (permalink)  
Antiguo 22/08/2009, 12:39
Avatar de abimaelrc
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: En el planeta de Puerto Rico
Mensajes: 14.734
Antigüedad: 14 años, 11 meses
Puntos: 1517
Respuesta: Problema creando miniaturas de imagenes

Te sugiero pasar la imagen normal primero con move_uploaded_file y luego haces un copy() pasas al thumb y lo modificas de tamaño.
__________________
Verifica antes de preguntar.
Los verdaderos amigos se hieren con la verdad, para no perderlos con la mentira. - Eugenio Maria de Hostos
  #5 (permalink)  
Antiguo 22/08/2009, 15:16
 
Fecha de Ingreso: octubre-2008
Ubicación: Andalucia
Mensajes: 23
Antigüedad: 15 años, 6 meses
Puntos: 0
Respuesta: Problema creando miniaturas de imagenes

Me da este error:
Cita:
Parse error: syntax error, unexpected T_STRING in C:\xampp\htdocs\PPCarmona\admin\gestion_inser_imag e.php on line 22
No se como copiar el archivo bien y como coger luego el nombre y el nombre temporal. Este es el codigo ke tengo:

Cita:
<?php

include_once("conexion.php");

$dbh=conectar();
$id= $_REQUEST['id'];
$nombre=$_REQUEST['nombre'];
$fecha=$_REQUEST['fecha'];
$archivo[]= $_FILES['archivo'];



if( $nombre==""){
header ("Location: inser_image.php");

}else{
if(isset($_FILES['archivo'])){
//Cojo el nombre
$imagen= $_FILES['archivo']['name'];
//Cojo el nombre temporal
$filename=$_FILES['archivo']['tmp_name']
//Paso el archivo a images/galeria/
Linea 22:move_uploaded_file($_FILES['archivo']['tmp_name'], "../images/galeria/".$_FILES['archivo']['name']);
//Lo copio
copy($archivo[], $newfile[]);
// Subo la nueva imagen
move_uploaded_file($filename, "../images/galeria/thumbs/".$imagen);
//Cambio el tamaño
$image_p = imagecreatetruecolor(150, 150);
$image = imagecreatefromjpeg($imagen);
list($width_orig, $height_orig) = getimagesize($filename);
imagecopyresampled($image_p, $image, 0, 0, 0, 0, 150, 150, $width_orig, $height_orig);

// Output
imagejpeg($image_p, $filename, 100);



$sql="insert into imagenes (imagen_id,nombre, fecha, imagen) values ('$id','$nombre', '$fecha', '$imagen')";
$dbh->query($sql);

}
try{

}catch (PDOException $e){
echo "Error de desconexion: ". $e->GetMessage();
}

header("Location: menu_doc_image.php");
}

?>
  #6 (permalink)  
Antiguo 22/08/2009, 15:29
 
Fecha de Ingreso: abril-2009
Ubicación: Miami
Mensajes: 182
Antigüedad: 15 años
Puntos: 8
Sonrisa Respuesta: Problema creando miniaturas de imagenes

Hola, te paso un código y luego te comento:

a este código le llamas cuando vengas del formulario que recoge la imagen
<?php
$userfile_type = $_FILES['archivo']['type']; //Guarda la la extension del archivo.
$userfile_size = $_FILES['archivo']['size']; //Guarda el tamaño del archivo.
if (!((strpos($userfile_type, "gif") || strpos($userfile_type, "jpeg") || strpos($userfile_type, "png")|| strpos($userfile_type, "GIF")|| strpos($userfile_type, "JPEG")|| strpos($userfile_type, "PNG")) && ($userfile_size < 400000))) {

//si la extensión no es gif, jpg, png y el tamaño supera los 400kB pues tiro el siguiente mensaje y regreso a la página del formulario
?>
<script languaje="JavaScript">
alert("Solo se permiten archivos de imagen y menores a 400 KB!!")
location.href='javascript:history.go(-1)'
</script>
<?php exit();}

else{
$separar = explode('.',$_FILES['archivo']['name']);//separo el nombre de la extensión, en $separar[0] guardo el nombre, en $separar[1] guardo la extensión

$ruta = "../ruta_destino/" . $nombre_que_le_pondras.".".$separar[1];
copy($_FILES['archivo']['tmp_name'], $ruta);//copio el archivo del temporal a la ruta, con el nombre deseado
echo "<script>alert('La imagen se cargó correctamente');</script>";
}
?>


Con este script lo que harás es subir archivos .. ahora bien ... en tu comentario también pones que tienes un error en la línea 22, quizá el problema es que no tiene permisos de lectura/escritura [777] la ruta para donde estás tirando las imágenes ...

espero te sirva .. salu2

-----------------------------------------------------
Cita:
Iniciado por Kstro7 Ver Mensaje
Me da este error:


No se como copiar el archivo bien y como coger luego el nombre y el nombre temporal. Este es el codigo ke tengo:
  #7 (permalink)  
Antiguo 23/08/2009, 06:56
 
Fecha de Ingreso: octubre-2008
Ubicación: Andalucia
Mensajes: 23
Antigüedad: 15 años, 6 meses
Puntos: 0
Respuesta: Problema creando miniaturas de imagenes

Creo que no as entendido bien lo ke necesitaba. Lo voy a explicar otra vez. Yo paso por un formulario una imagen. Ahora esa imagen la tengo ke mandar a una carpeta que se llama 'images', aora la misma imagen la tengo ke copiar y cambiar de tamaño y mandarla a otra carpeta ke se llama 'images/thumbs/'. Es para una galeria para que salgan las miniaturas y cargue mas rapido. Espero que ahora me puedan ayudar mejor.
  #8 (permalink)  
Antiguo 23/08/2009, 08:33
 
Fecha de Ingreso: octubre-2008
Ubicación: Andalucia
Mensajes: 23
Antigüedad: 15 años, 6 meses
Puntos: 0
Respuesta: Problema creando miniaturas de imagenes

Lo he podido solucionar pasandole en el formulario 2 veces la misma foto. Es un poco feo que el usuario tenga que insertar 2 veces la misma imagen pero es que copiandola no funcionaba o no sabia acerlo. este es el codigo:

Cita:
<?php

include_once("conexion.php");

$dbh=conectar();
$id= $_REQUEST['id'];
$nombre=$_REQUEST['nombre'];
$fecha=$_REQUEST['fecha'];



if( $nombre==""){
header ("Location: inser_image.php");

}else{
if(isset($_FILES['archivo'])&& isset($_FILES['imagen_file'])){
move_uploaded_file($_FILES['archivo']['tmp_name'], "../images/galeria/".$_FILES['archivo']['name']);

$imagen= $_FILES['imagen_file']['name'];
//Creacion de la miniatura

$filename= $_FILES['imagen_file']['tmp_name'];
// Resample
$image_p = imagecreatetruecolor(150, 150);
$image = imagecreatefromjpeg($filename);
list($width_orig, $height_orig) = getimagesize($filename);
imagecopyresampled($image_p, $image, 0, 0, 0, 0, 150, 150, $width_orig, $height_orig);

// Output
imagejpeg($image_p, $filename, 100);

move_uploaded_file($filename, "../images/galeria/thumbs/".$imagen);

$sql="insert into imagenes (imagen_id,nombre, fecha, imagen) values ('$id','$nombre', '$fecha', '$imagen')";
$dbh->query($sql);

}
try{


}catch (PDOException $e){
echo "Error de desconexion: ". $e->GetMessage();
}

header("Location: menu_doc_image.php");
}

?>
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 12:56.