Foros del Web » Programando para Internet » PHP »

no funciona un codigo

Estas en el tema de no funciona un codigo en el foro de PHP en Foros del Web. Hola estoy aprendiendo pero la verdad que no consigo dar con el fallo a este codigo de redimensionar una foto que llega a traves de ...
  #1 (permalink)  
Antiguo 29/04/2011, 15:19
 
Fecha de Ingreso: enero-2011
Mensajes: 1.150
Antigüedad: 13 años, 2 meses
Puntos: 10
no funciona un codigo

Hola estoy aprendiendo pero la verdad que no consigo dar con el fallo a este codigo de redimensionar una foto que llega a traves de un formulario file.

este es el codigo php:

Código PHP:
Ver original
  1. <?php
  2.     //header("Content-type: image/jpeg");
  3.     $nombrefoto=$_FILES["archivo"]["name"];
  4.     $imagenoriginal = imagecreatefromjpeg("fotos/.$nombrefoto.");
  5.     $ancho=imagey($imagenoriginal);
  6.     $alto=imagex($imagenoriginal);
  7.     $imagennueva = imagecreatetruecolor (60,60);
  8.     imagecopyresized ($imagennueva,$imagenoriginal,0,0,0,0,120,120,$ancho,$alto);
  9.     imagejpeg($imagennueva);
  10.     imagedestroy($imagenoriginal);
  11.     imagedestroy($imagennueva);
  12. ?>

esto lo mando a traves de un formulario html

alguien me puede ayudar he estado mirando el foro pero no doy con la solucion
  #2 (permalink)  
Antiguo 29/04/2011, 15:22
Avatar de Lautaro_eb  
Fecha de Ingreso: mayo-2010
Ubicación: Bariloche, Argentina
Mensajes: 284
Antigüedad: 13 años, 10 meses
Puntos: 24
Respuesta: no funciona un codigo

As copiado la imagen al directorio foto ?
  #3 (permalink)  
Antiguo 29/04/2011, 15:24
 
Fecha de Ingreso: enero-2011
Mensajes: 1.150
Antigüedad: 13 años, 2 meses
Puntos: 10
Respuesta: no funciona un codigo

No bueno yo queria que saliera en pantalla para probar.

Pero ahora que lo dices que tengo que tengo que guardar la imagen primero verdad?
como lo tendria que hacer ?
  #4 (permalink)  
Antiguo 29/04/2011, 15:27
Avatar de skiper0125  
Fecha de Ingreso: octubre-2010
Ubicación: $this->Mexico('Toluca');
Mensajes: 1.127
Antigüedad: 13 años, 5 meses
Puntos: 511
Respuesta: no funciona un codigo

Hola que tal checa este articulo para re dimencionar esta muy bien explicado

http://www.forosdelweb.com/f18/aport...niails-904495/

saludos
__________________
Recuerda que estamos aquí para orientarte, y no para hacer tu trabajo.
Si mi aporte fue de ayuda, recuerda que agradecer no cuesta nada +1

Skiper0125
  #5 (permalink)  
Antiguo 29/04/2011, 15:30
Avatar de Lautaro_eb  
Fecha de Ingreso: mayo-2010
Ubicación: Bariloche, Argentina
Mensajes: 284
Antigüedad: 13 años, 10 meses
Puntos: 24
Respuesta: no funciona un codigo

Cuando envias el archivo por el formulario el input file le tienes que asignar un nombre que enviaras ala otra pagina.
llamas al input it_img usa $_FILES['it_img']
Código PHP:
Ver original
  1. if(is_uploaded_file($_FILES['it_img']['tmp_name'])){//Verifica si suvio el archivo
  2. if(move_uploaded_file($_FILES['it_img']['tmp_name'],"fotos/".$_FILES['it_img']['name']))
  3. { // SI fue movida ala carpeta de origen
  4. echo "suvida correctamente";
  5. }
  6. }
Ese es el metodo.
  #6 (permalink)  
Antiguo 29/04/2011, 15:36
Avatar de Triby
Mod on free time
 
Fecha de Ingreso: agosto-2008
Ubicación: $MX->Gto['León'];
Mensajes: 10.106
Antigüedad: 15 años, 7 meses
Puntos: 2237
Respuesta: no funciona un codigo

Ups, me tarde mucho escribiendo!!!

La pregunta de Lautaro_eb es porque estas tratando de acceder a la foto desde:

$imagenoriginal = imagecreatefromjpeg("fotos/.$nombrefoto.");

Y, para esto, se supone que la foto ya debes tenerla en fotos/.nombre-de-foto.extension., aunque, esos puntos yo creo que no van ahi poque supongo que querias concatenar y, si es el caso, las dos opciones que tienes son:

1. Sin los puntos, porque en una cadena encerrada entre comillas dobles, PHP interpreta las variables
$imagenoriginal = imagecreatefromjpeg("fotos/$nombrefoto");

2. Con comillas sencillas y concatenando
$imagenoriginal = imagecreatefromjpeg('fotos/' . $nombrefoto);

Ahora, para poder usar la imagen desde la carpeta "fotos", primero debiste haberla movido con move_uploaded_file(), o bien, si solo quieres probar como sale, puedes hacerlo desde la ubicacion temporal:

$imagenoriginal = imagecreatefromjpeg($_FILES["archivo"]["tmp_name"]);
__________________
- León, Guanajuato
- GV-Foto
  #7 (permalink)  
Antiguo 29/04/2011, 15:41
 
Fecha de Ingreso: enero-2011
Mensajes: 1.150
Antigüedad: 13 años, 2 meses
Puntos: 10
Respuesta: no funciona un codigo

Entonces este script para guardar la imagen lo tengo que poner arriba del codigo php verdad?
  #8 (permalink)  
Antiguo 29/04/2011, 15:44
Avatar de Lautaro_eb  
Fecha de Ingreso: mayo-2010
Ubicación: Bariloche, Argentina
Mensajes: 284
Antigüedad: 13 años, 10 meses
Puntos: 24
Respuesta: no funciona un codigo

SI Primero que nada comprueva que sea una imagen tipo Png JPG PENG GIF Etcs ..
De lo contrario si intentas poner otro archivo te dara error en el script
  #9 (permalink)  
Antiguo 29/04/2011, 15:45
 
Fecha de Ingreso: enero-2011
Mensajes: 1.150
Antigüedad: 13 años, 2 meses
Puntos: 10
Respuesta: no funciona un codigo

triby gracias por la explicacion corregire esos puntos y comas que me ha quedado claro.pero mi duda es la posteada ahora arriba.
  #10 (permalink)  
Antiguo 29/04/2011, 15:47
Avatar de Triby
Mod on free time
 
Fecha de Ingreso: agosto-2008
Ubicación: $MX->Gto['León'];
Mensajes: 10.106
Antigüedad: 15 años, 7 meses
Puntos: 2237
Respuesta: no funciona un codigo

Cita:
Iniciado por asaz
triby gracias por la explicacion corregire esos puntos y comas que me ha quedado claro.pero mi duda es la posteada ahora arriba.
Si leyeras los mensajes completos, tal podrias resolver tu duda con mi respuesta publicada arriba.
__________________
- León, Guanajuato
- GV-Foto
  #11 (permalink)  
Antiguo 29/04/2011, 15:54
 
Fecha de Ingreso: enero-2011
Mensajes: 1.150
Antigüedad: 13 años, 2 meses
Puntos: 10
Respuesta: no funciona un codigo

no me funciona creo que es problema de ruta yo esta carpeta llamada fotos la tengo en el disco c osea asin c:\fotos esta bien tendria que ir verdad.
  #12 (permalink)  
Antiguo 29/04/2011, 16:03
 
Fecha de Ingreso: enero-2011
Mensajes: 1.150
Antigüedad: 13 años, 2 meses
Puntos: 10
Respuesta: no funciona un codigo

puede ser algo de php.ini subida de archivos creo que lo toque
  #13 (permalink)  
Antiguo 29/04/2011, 16:06
 
Fecha de Ingreso: enero-2011
Mensajes: 1.150
Antigüedad: 13 años, 2 meses
Puntos: 10
Respuesta: no funciona un codigo

Triby lei tu mensaje entero y me fue de mucha ayuda me quedo claro lo de las comillas pero ahora mi problema es que no me guarda la imagen en la carpeta fotos me podrias decir si tengo que revisar algo en php.ini
  #14 (permalink)  
Antiguo 29/04/2011, 16:42
 
Fecha de Ingreso: enero-2011
Mensajes: 1.150
Antigüedad: 13 años, 2 meses
Puntos: 10
Respuesta: no funciona un codigo

triby asin tampoco me muestra el resultado temporal.

Código PHP:
Ver original
  1. <?php
  2.  
  3.     header("Content-type: image/jpeg");
  4.     $nombrefoto=$_FILES["archivo"]["name"];
  5.     //$imagenoriginal = imagecreatefromjpeg('foto/'.$nombrefoto);
  6.     $imagenoriginal = imagecreatefromjpeg($_FILES["archivo"]["tmp_name"]);
  7.     $ancho=imagey($imagenoriginal);
  8.     $alto=imagex($imagenoriginal);
  9.     $imagennueva = imagecreatetruecolor (60,60);
  10.     imagecopyresized ($imagennueva,$imagenoriginal,0,0,0,0,120,120,$ancho,$alto);
  11.     imagejpeg($imagennueva);
  12.     imagedestroy($imagenoriginal);
  13.     imagedestroy($imagennueva);
  14. ?>

y en el script del formulariotengo en el input el name archivo
  #15 (permalink)  
Antiguo 29/04/2011, 17:55
Avatar de Lautaro_eb  
Fecha de Ingreso: mayo-2010
Ubicación: Bariloche, Argentina
Mensajes: 284
Antigüedad: 13 años, 10 meses
Puntos: 24
Respuesta: no funciona un codigo

no la carpeta fotos deve estar en la carpeta local del servidor ... EJM Www o htdocs etc.
Mejore Seria si la tiene en el directorio donde ejecutar el script .
  #16 (permalink)  
Antiguo 29/04/2011, 20:22
Avatar de Triby
Mod on free time
 
Fecha de Ingreso: agosto-2008
Ubicación: $MX->Gto['León'];
Mensajes: 10.106
Antigüedad: 15 años, 7 meses
Puntos: 2237
Respuesta: no funciona un codigo

Envia el encabezado (header) una linea antes de imagejpg($imagennueva), digo, si hay algun error lo unico que vas a ver es una X roja en IE y un mensaje en Firefox de que no se puede mostrar la imagen porque contiene errores.

Antes que nada, habria que averiguar si realmente se subio la imagen:
Código PHP:
Ver original
  1. if($_FILES['archivo']['error'] != 0) {
  2.     die('Error subiendo archivo # ' . $_FILES['archivo']['error']);
  3. }

Si $_FILES['archivo']['error'] es cero, entonces si se subio un archivo, de lo contrario, necesitas analizar el numero de error para ver que esta pasando.
__________________
- León, Guanajuato
- GV-Foto
  #17 (permalink)  
Antiguo 30/04/2011, 03:33
 
Fecha de Ingreso: enero-2011
Mensajes: 1.150
Antigüedad: 13 años, 2 meses
Puntos: 10
Respuesta: no funciona un codigo

Triby me da este error:

Error subiendo archivo # Array

y este:

Warning: is_uploaded_file() expects parameter 1 to be string, array given in C:\wamp\www\guardar.php on line 3
  #18 (permalink)  
Antiguo 30/04/2011, 03:39
 
Fecha de Ingreso: enero-2011
Mensajes: 1.150
Antigüedad: 13 años, 2 meses
Puntos: 10
Respuesta: no funciona un codigo

este es el codigo html del form ya que intento enviar dos archivos
Código PHP:
Ver original
  1. <form action="guardar.php" method="post" enctype="multipart/form-data">
el name de los input lo tengo asin:

name="archivo[]"

espero que me ayueis y me deseis la explicacion ya que realmente lo que quiero es aprender gracias por todo de todas formas
  #19 (permalink)  
Antiguo 30/04/2011, 04:04
 
Fecha de Ingreso: enero-2011
Mensajes: 1.150
Antigüedad: 13 años, 2 meses
Puntos: 10
Respuesta: no funciona un codigo

ahora la tengo asin:

Código PHP:
Ver original
  1. if(move_uploaded_file($_FILES['archivo']['tmp_name'],"fotos/".$_FILES['archivo']['name']))
  2.     { // SI fue movida ala carpeta de origen
  3.         echo "suvida correctamente";
  4.     }
  5.    }

la buena seria asin entonces:

Código PHP:
Ver original
  1. if(move_uploaded_file( array $_FILES['archivo']['tmp_name']),"fotos/".$_FILES['archivo']['name']))
  2.     { // SI fue movida ala carpeta de origen
  3.         echo "suvida correctamente";
  4.     }
  5.    }

lo hago bien o en que fallo espero la explicacion gracias
  #20 (permalink)  
Antiguo 30/04/2011, 14:11
Avatar de Triby
Mod on free time
 
Fecha de Ingreso: agosto-2008
Ubicación: $MX->Gto['León'];
Mensajes: 10.106
Antigüedad: 15 años, 7 meses
Puntos: 2237
Respuesta: no funciona un codigo

Cuantos archivos vas a subir con ese formulario?

Si es solo uno, entonces el nombre del campo debe ser solo name="archivo", si es mas de uno, entonces esta bien con name="archivo[]"

Ahora, el problema es que al subir mas de uno, lo que encuentras en cada elemento de $_FILES['archivo'] es una matriz, ejemplo:

$nombre0 = $_FILES['archivo']['name'][0];

Puedes manejarlo con un for o while para leer todos los que subas, pero, te recomiendo aprender a subir primero de uno en uno y despues ya podras experimentar con dos o mas.
__________________
- León, Guanajuato
- GV-Foto
  #21 (permalink)  
Antiguo 30/04/2011, 16:32
 
Fecha de Ingreso: enero-2011
Mensajes: 1.150
Antigüedad: 13 años, 2 meses
Puntos: 10
Respuesta: no funciona un codigo

Hola triby lo probe con un solo archivo y la verdad que me funciona la parte de subirme el archivo a mi servidor lo que no consigo ahora es redimensionar imagen y guardarla en mi servidor.

sera que compajino mal el codigo de subir la imagen con el de redimensionar la imagen me podrias echar una mano te lo agradeceria
  #22 (permalink)  
Antiguo 30/04/2011, 18:00
Avatar de Triby
Mod on free time
 
Fecha de Ingreso: agosto-2008
Ubicación: $MX->Gto['León'];
Mensajes: 10.106
Antigüedad: 15 años, 7 meses
Puntos: 2237
Respuesta: no funciona un codigo

Muestra nuevamente como va tu codigo, es dificil tratar de adivinar.
__________________
- León, Guanajuato
- GV-Foto
  #23 (permalink)  
Antiguo 30/04/2011, 18:19
 
Fecha de Ingreso: enero-2011
Mensajes: 1.150
Antigüedad: 13 años, 2 meses
Puntos: 10
Respuesta: no funciona un codigo

El codigo lo tengo asin la subida de archivos va pero no logro compajinar con la redimension y guardar la foto.

Código PHP:
Ver original
  1. <?php
  2.    if(is_uploaded_file($_FILES['archivo']['tmp_name'])){//Verifica si suvio el archivo
  3.    if(move_uploaded_file($_FILES['archivo']['tmp_name'],"fotos/".$_FILES['archivo']['name']))
  4.     { // SI fue movida ala carpeta de origen
  5.         echo "suvida correctamente";
  6.     }
  7.  
  8.     if($_FILES['archivo']['error'] != 0) {
  9.     die('Error subiendo archivo # ' . $_FILES['archivo']['error']);
  10.  }
  11.  ?>
  12.  <?php
  13.    
  14.  
  15.    
  16.     $nombrefoto=$_FILES["archivo"]["name"];
  17.     $imagenoriginal = imagecreatefromjpeg('fotos/'.$nombrefoto);
  18.     $ancho=imagey($imagenoriginal);
  19.     $alto=imagex($imagenoriginal);
  20.     header("Content-type: image/jpeg");
  21.     $imagennueva = imagecreatetruecolor (60,60);
  22.     imagecopyresized ($imagennueva,$imagenoriginal,0,0,0,0,60,60,$ancho,$alto);
  23.     //header("Content-type: image/jpeg");
  24.     imagejpeg($imagennueva,'copia.jpg');
  25.     imagedestroy($imagenoriginal);
  26.     imagedestroy($imagennueva);
  27. ?>

Última edición por azaz; 30/04/2011 a las 18:42
  #24 (permalink)  
Antiguo 01/05/2011, 09:56
 
Fecha de Ingreso: enero-2011
Mensajes: 1.150
Antigüedad: 13 años, 2 meses
Puntos: 10
Respuesta: no funciona un codigo

ya lo solucione las lineas 18 19 estaban mal saludos a todos.

Etiquetas: Ninguno
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:14.