Foros del Web » Programando para Internet » PHP »

error al Subir archivos en php5

Estas en el tema de error al Subir archivos en php5 en el foro de PHP en Foros del Web. Hola amigos, hice una aplicacion en la cual subias un archivo al servidor, (una imagen, ya sea jpg, gif o png) y pues en mi ...
  #1 (permalink)  
Antiguo 20/12/2007, 09:08
Avatar de xcars  
Fecha de Ingreso: mayo-2005
Ubicación: El Salvador
Mensajes: 753
Antigüedad: 19 años, 6 meses
Puntos: 4
error al Subir archivos en php5

Hola amigos, hice una aplicacion en la cual subias un archivo al servidor, (una imagen, ya sea jpg, gif o png) y pues en mi casa funcino a la perfeccion, luego la subi al servidor y no me funciono.
Yo en codigo habia puesto de que si no era JPG, GIF O PNG lanzara un error de FORMATO NO VALIDO, y en el server me lanza ese error.
Ahora bien, ya era noche y no quise indagar.
Me vine a la oficina y probe la aplicacion, y cual fue mi sorpresa, el mismo error, y viendo configuraciones, etc etc, me di cuenta que en mi casa tengo el php 4 y en el servidor y mi oficina tengo php5, entonces nose si habra algun cambio que desconozco, nose si podrian ayudarme.
Con el servidor no hay problemas en configurar el php.ini, o cualquier otra cosa que halla que configurar, pues es un server inhouse.
Espero y me puedan ayudar. Gracias
__________________
Con Microaplicaciones puedes hacer tu tienda en línea de forma sencilla y rápida, sin costos ocultos y con mucha responsabilidad.
  #2 (permalink)  
Antiguo 20/12/2007, 09:11
Avatar de mauled  
Fecha de Ingreso: marzo-2005
Ubicación: Cd. de México.
Mensajes: 3.001
Antigüedad: 19 años, 8 meses
Puntos: 33
Re: error al Subir archivos en php5

mmm te sugiero que postees tu código en donde "subes" tu archivo... para poder ver si existe algun error.

Saludillos.
  #3 (permalink)  
Antiguo 20/12/2007, 10:10
Avatar de xcars  
Fecha de Ingreso: mayo-2005
Ubicación: El Salvador
Mensajes: 753
Antigüedad: 19 años, 6 meses
Puntos: 4
Re: error al Subir archivos en php5

Cita:
Iniciado por mauled Ver Mensaje
mmm te sugiero que postees tu código en donde "subes" tu archivo... para poder ver si existe algun error.

Saludillos.
no hay problema, pero como te comento, en mi casa con php4 me funciono a la perfeccion.
__________________
Con Microaplicaciones puedes hacer tu tienda en línea de forma sencilla y rápida, sin costos ocultos y con mucha responsabilidad.
  #4 (permalink)  
Antiguo 20/12/2007, 10:12
Avatar de xcars  
Fecha de Ingreso: mayo-2005
Ubicación: El Salvador
Mensajes: 753
Antigüedad: 19 años, 6 meses
Puntos: 4
Re: error al Subir archivos en php5

Codigos utilizados

php subir.php

Código PHP:
    $extension explode(".",$archivo_name);
    
$num count($extension)-1;
    
$str "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz1234567890";
    
$cad "";
    for(
$i=0;$i<12;$i++) 
    {
        
$cad .= substr($str,rand(0,62),1);
    }

    
$nuevo_nombre=$cad.'.'.$extension[$num];
    if(
$extension[$num] == "jpg" || $extension[$num] == "png" || $extension[$num] == "gif")
    {
        if(
$archivo_size 8388608)
        {
            if(!
copy($archivo"uploads/".$nuevo_nombre))
            {
                echo 
"error al copiar el archivo";
            }
            else
            {
                
header('Location: cortar.php?imagen='.$nuevo_nombre);
            }
        }
        else
        {
            echo 
"el archivo supera los 8 MB";
        }
    }
    else
    {
        echo 
$extension[$num];
        echo 
"el formato de archivo no es valido, solo .jpg .gif y .png";
    }
?> 
subir.phtml
Código HTML:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>

<head>
	<meta http-equiv="content-type" content="text/html; charset=iso-8859-1">
	<meta name="author" content="Harold Rivas">

	<title>Untitled 1</title>
</head>

<body>

<form action="subir.php" method="post"
      name="miformu" enctype="multipart/form-data">
      <input name="archivo" type="file">
      <input type="submit" value="Subir mi foto" name="submit">
      </form>
</body>
</html> 
__________________
Con Microaplicaciones puedes hacer tu tienda en línea de forma sencilla y rápida, sin costos ocultos y con mucha responsabilidad.
  #5 (permalink)  
Antiguo 20/12/2007, 10:51
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años, 5 meses
Puntos: 2135
Re: error al Subir archivos en php5

En lugar de usar $archivo mejor usa el array de $_FILES es decir: $archivo_name se convierte por $_FILES['archivo']['name'];

Otra cosa en lugar de usar copy, usa move_uploaded_file.

Saludos.
  #6 (permalink)  
Antiguo 20/12/2007, 11:05
Avatar de xcars  
Fecha de Ingreso: mayo-2005
Ubicación: El Salvador
Mensajes: 753
Antigüedad: 19 años, 6 meses
Puntos: 4
Re: error al Subir archivos en php5

Cita:
Iniciado por GatorV Ver Mensaje
En lugar de usar $archivo mejor usa el array de $_FILES es decir: $archivo_name se convierte por $_FILES['archivo']['name'];

Otra cosa en lugar de usar copy, usa move_uploaded_file.

Saludos.
gracias lo probare, pregunta, son cambios que podrian a fectar en php5 y no en php4? es que tambien quiero estar seguro de eso. Gracias
__________________
Con Microaplicaciones puedes hacer tu tienda en línea de forma sencilla y rápida, sin costos ocultos y con mucha responsabilidad.
  #7 (permalink)  
Antiguo 20/12/2007, 11:38
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años, 5 meses
Puntos: 2135
Re: error al Subir archivos en php5

Tanto en PHP4 como en PHP5 es recomendable usar el arreglo de $_FILES y usar move_uploaded_file.

La forma como tu lo tienes es para PHP3 y las primeras versiones de PHP4, pero lo mas recomendable es usar las variables superglobales $_FILES y otras como $_POST, $_GET y $_SESSION.

Saludos.
  #8 (permalink)  
Antiguo 20/12/2007, 11:38
Avatar de kaninox  
Fecha de Ingreso: septiembre-2005
Ubicación: In my House
Mensajes: 3.597
Antigüedad: 19 años, 2 meses
Puntos: 49
Re: error al Subir archivos en php5

en los dos funciona igualmente bien... si lo haces como te indica gatorV
__________________
Gokuh Salvo al mundo. PUNTO!!!!
  #9 (permalink)  
Antiguo 20/12/2007, 11:46
Avatar de xcars  
Fecha de Ingreso: mayo-2005
Ubicación: El Salvador
Mensajes: 753
Antigüedad: 19 años, 6 meses
Puntos: 4
Re: error al Subir archivos en php5

bueno, gracias por la ayuda, me sirvieron sus consejos, pero te comento que el problema no era la funcion con la que copiaba, sino que en mi casa el archivo subia con el nombre del archivo en minusculas, y en el servidor y la makina de oficina subia en mayusculas, bueno, pero ademas me sirivio mucho lo que me recomendaste ya que lei algunas otras cosas que le agregue ademas.
Asi que aqui dejo el codigo para cualquiera que tenga un problema similar

Código PHP:
if (is_uploaded_file($_FILES['archivo']['tmp_name']))
{
    
$archivo=$_FILES['archivo']['name'];
    
$extension explode(".",$archivo);
    
$num count($extension)-1;
    
$ext=strtolower($extension[$num]);
    
$str "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz1234567890";
    
$cad "";
    for(
$i=0;$i<12;$i++) 
    {
        
$cad .= substr($str,rand(0,62),1);
    }
    
$nuevo_nombre=$cad.'.'.$ext;
    if(
$ext == "jpg" || $ext == "png" || $ext == "gif")
    {
        if(
$archivo_size 8388608)
        {
            if(!
move_uploaded_file($_FILES['archivo']['tmp_name'], "uploads/".$nuevo_nombre))
            {
                echo 
"error al copiar el archivo";
            }
            else
            {
                
header('Location: cortar.php?imagen='.$nuevo_nombre);
            }
        }
        else
        {
            echo 
"el archivo supera los 8 MB";
        }
    }
    else
    {
        echo 
"el formato de archivo no es valido, solo .jpg .gif y .png";
    }
}
else
    echo 
"No ha cargado ningun archivo"
__________________
Con Microaplicaciones puedes hacer tu tienda en línea de forma sencilla y rápida, sin costos ocultos y con mucha responsabilidad.
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 21:51.