Foros del Web » Programando para Internet » PHP »

carga de imagenes

Estas en el tema de carga de imagenes en el foro de PHP en Foros del Web. Necesito subir imagenes a carpetas dado: * Solo deben ser JPG o jpg * ojala de 600x480 Como recien comienzo con instrucciones PHP mas avanzadas, ...
  #1 (permalink)  
Antiguo 19/11/2008, 13:50
 
Fecha de Ingreso: octubre-2005
Mensajes: 405
Antigüedad: 18 años, 6 meses
Puntos: 1
carga de imagenes

Necesito subir imagenes a carpetas dado:
* Solo deben ser JPG o jpg
* ojala de 600x480
Como recien comienzo con instrucciones PHP mas avanzadas, desconozco mi problema
Error que da es :
El archivo subido no es un JPG
Warning: Cannot modify header information - headers already sent by (output started at subirimagen.php:10) in subirimagen.php on line 25.


formulario
-----------
Código PHP:
<?
$codigo
=$_GET['codigo'];
$crea=$_GET['crea'];
<
form method='post' action='subirimagen.php' enctype="multipart/form-data" >    
   <
input type="file" name="image" id="image" />
   <
input type="hidden" value"<? echo $crea; ?>" name="crea" />
   <
input type="hidden" value"<? echo $codigo; ?>" name="catalogo" />
   <
input type="submit" name="send" value="Subir Imagen"/>        
</
form>
?>
subirimagen.php
---------------
Código PHP:
<?
  $crea
=$_POST['crea'];
  
$codigo=$_POST['codigo'];
  if(
$_FILES['image']['size'] > 500000 )                                  
  {                                                                       
      echo 
"El archivo subido es demasiado grande (mayor a 200 KB)";  
  }                                                                       
  elseif(
strpos($_FILES['image']['name'],"JPG") === false)                
  {                                                                       
      echo 
"El archivo subido no es un JPG";                          
  }
  else
  {  
     if(
$crea == 0)
     {
       @
mkdir("catalogos/".$codigo,0777);
       
//Actualizar base con swfoto_p en 1
       
include("config.php");
       
$foto=1;
       
$sql="update exipro set swfoto_p='$foto' where codpro_p = '$codigo' limit 1";
       
mysql_query($sql,$conexion) or die("Problemas con insercion de catalogo..<b>".mysql_error());
     } 
     
move_uploaded_file('image','name',70000,'/catalogos/'.$codigo.'/'.$_FILES['image']['name']);
  }                       
  
header('Location: '.$_SERVER['HTTP_REFERER']);
?>
Desde ya gracias de antemano.
  #2 (permalink)  
Antiguo 19/11/2008, 14:09
Avatar de David
Moderador
 
Fecha de Ingreso: abril-2005
Ubicación: In this planet
Mensajes: 15.720
Antigüedad: 19 años
Puntos: 839
Respuesta: carga de imagenes

No puedes cambiar la cabecera (header) después de haber enviado una salida (en este caso ya la has enviado con echo). Solo puedes cambiar la cabecera antes de enviar cualquier salida HTML. Si lo que quieres es redireccionar después de mostrar el texto, usa metatags.
__________________
Por favor, antes de preguntar, revisa la Guía para realizar preguntas.
  #3 (permalink)  
Antiguo 19/11/2008, 14:28
 
Fecha de Ingreso: octubre-2005
Mensajes: 405
Antigüedad: 18 años, 6 meses
Puntos: 1
Respuesta: carga de imagenes

Gracias por tu respuesta, pero te digo la verdad ¡No entendi nada!
Me podria intentar explicar de otra forma por favor...

Última edición por GatorV; 19/11/2008 a las 15:34
  #4 (permalink)  
Antiguo 19/11/2008, 14:38
Avatar de David
Moderador
 
Fecha de Ingreso: abril-2005
Ubicación: In this planet
Mensajes: 15.720
Antigüedad: 19 años
Puntos: 839
Respuesta: carga de imagenes

Código php:
Ver original
  1. <?
  2.   $crea=$_POST['crea'];
  3.   $codigo=$_POST['codigo'];
  4.   if($_FILES['image']['size'] > 500000 )                                  
  5.   {                                                                      
  6.       echo "El archivo subido es demasiado grande (mayor a 200 KB)";  
  7.   }                                                                      
  8.   elseif(strpos($_FILES['image']['name'],"JPG") === false)                
  9.   {                                                                      
  10.       echo "El archivo subido no es un JPG";                          
  11.   }
  12.   else
  13.   {  
  14.      if($crea == 0)
  15.      {
  16.        @mkdir("catalogos/".$codigo,0777);
  17.        //Actualizar base con swfoto_p en 1
  18.        include("config.php");
  19.        $foto=1;
  20.        $sql="update exipro set swfoto_p='$foto' where codpro_p = '$codigo' limit 1";
  21.        mysql_query($sql,$conexion) or die("Problemas con insercion de catalogo..<b>".mysql_error());
  22.      }
  23.      move_uploaded_file('image','name',70000,'/catalogos/'.$codigo.'/'.$_FILES['image']['name']);
  24.   }                      
  25.   header('Location: '.$_SERVER['HTTP_REFERER']);
  26. ?>
Mira tu código, tanto en la línea 6 como en la línea 10 estás enviando una salida HTML (echo). Pero después, en la línea 25 tratas de modificar la cabecera (header), pero como te dije, no puedes modificar la cabecera después de enviada una salida (porque la cabecera ya habrá sido enviada en ese momento). Así que como veo que lo que pretendes con modificar la cabecera es redireccionar, te sugería que usaras metatags para tal efecto.

Aquí puedes leer en el manual sobre header: http://www.php.net/manual/es/function.header.php
__________________
Por favor, antes de preguntar, revisa la Guía para realizar preguntas.
  #5 (permalink)  
Antiguo 19/11/2008, 14:56
 
Fecha de Ingreso: octubre-2005
Mensajes: 405
Antigüedad: 18 años, 6 meses
Puntos: 1
Respuesta: carga de imagenes

Disculpa que siga con los mismo..
No te entendi.
me hablas de metatags ¿Que es eso?, el manual que mencionas me habla de function header()
Disculpa que insista, pero como me inicio con algunas funciones realmente no se como funcionan, se que en la practica se aprende mas y quiero apreder pero tampoco entendi el manual y ademas esta en ingles.
Alguna explicacion mas clara y mensionar que debo hacer claramente si tengo que reemplazar algo .. por que debo reemplazarlo.
muchisimas gracias.

Última edición por GatorV; 19/11/2008 a las 15:33
  #6 (permalink)  
Antiguo 19/11/2008, 15:15
Avatar de David
Moderador
 
Fecha de Ingreso: abril-2005
Ubicación: In this planet
Mensajes: 15.720
Antigüedad: 19 años
Puntos: 839
Respuesta: carga de imagenes

El manual dice con mayor claridad y explicación lo que yo te había dicho: "Recuerde que header() debe ser llamado antes de que cualquier salida sea enviada". En fin, un ejemplo de un metatag para redirección:
Código html:
Ver original
  1. <meta http-equiv="refresh" content="5; url=http://www.google.com/" />
Redireccionará a Google transcurridos 5 segundos.

P.S.: No es necesario que cites el mensaje anterior para responder, se vuelve molesto para leer.
__________________
Por favor, antes de preguntar, revisa la Guía para realizar preguntas.
  #7 (permalink)  
Antiguo 19/11/2008, 15:29
 
Fecha de Ingreso: octubre-2005
Mensajes: 405
Antigüedad: 18 años, 6 meses
Puntos: 1
Respuesta: carga de imagenes

De verdad gracias, pero por mas que he tratado de entender no lo consigo... Pero no dejare de averiguar al respecto desde ya gracias.
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 19:16.