Foros del Web » Programando para Internet » PHP »

Problemas para subir archivos...

Estas en el tema de Problemas para subir archivos... en el foro de PHP en Foros del Web. Estimados, He hecho varias preguntas en estos días, el problema es que en mi antiguo servidor trabajaba con register_globals en ON pero ahora estopy cambiando ...
  #1 (permalink)  
Antiguo 23/07/2007, 22:33
 
Fecha de Ingreso: mayo-2003
Mensajes: 174
Antigüedad: 21 años
Puntos: 0
Problemas para subir archivos...

Estimados,
He hecho varias preguntas en estos días, el problema es que en mi antiguo servidor trabajaba con register_globals en ON pero ahora estopy cambiando todo a OFF, por lo tanto, he tenido que hacer varios cambios. Entre esos esta el poder subir archivos (3) al servidor. Estuve revisando y encontré acá mismo este script:

Código PHP:
<?php
if (isset($_POST['submit'])) { 
    if(
is_uploaded_file($_FILES['fichero']['tmp_name'])) { // verifica haya sido cargado el archivo
        
if(move_uploaded_file($_FILES['fichero']['tmp_name'], $_FILES['fichero']['name'])) { // se coloca en su lugar final
                    
echo "<b>Upload exitoso!. Datos:</b><br>";
            echo 
"Nombre: <i><a href=\"".$_FILES['fichero']['name']."\">".$_FILES['fichero']['name']."</a></i><br>";
            echo 
"Tipo MIME: <i>".$_FILES['fichero']['type']."</i><br>";
                    echo 
"Peso: <i>".$_FILES['fichero']['size']." bytes</i><br>";
                        echo 
"<br><hr><br>";
        }
    }

// A continuación el formulario
}
?>

<form action="<?php echo $_SERVER['PHP_SELF'?>" method="post" enctype="multipart/form-data">
    Archivo: <input name="fichero" type="file">
    <input name="submit" type="submit" value="Upload!"> 
</form>
Sin embargo hay varias cosas que aún no tengo claras... por ejemplo ese "tmp_name" es una carpeta temporal de mi servidor ¿cierto? pero ¿eso queda tal cual o debo encontrar el nombre de la carpeta temporal para pder subir las imágenes y despues moverlas a la carpeta que yo quiero?
¿Hay alguna forma de mover desde mi PC directamente a una carpeta específica en mi server?

Gracias.
  #2 (permalink)  
Antiguo 24/07/2007, 06:15
 
Fecha de Ingreso: julio-2007
Ubicación: Gran Canaria (España).
Mensajes: 13
Antigüedad: 16 años, 9 meses
Puntos: 1
Re: Problemas para subir archivos...

Hola Xmedia, efectivamente, cuando se hace un submit de un formulario donde existe un <input type="file">, automaticamente se hace un upload de el archivo que el usuario ha seleccionado en el browser, y lo pone en una carpeta temporal destinada a ello del servidor. cuando escribes $_FILES['fichero']['tmp_name'], te refieres a la direccion del archivo en su carpeta temporal, de modo que si lo aplicas a la funcion que tienes ahi, (tambien te vale "copy"), se mueve a la direccion que tú le indiques en el segundo parámetro. Lo que pasa es que lo de register_globals me suena a que debes ponerlo a ON, no estoy seguro, pero si no necesitas ponerlo en OFF, te aconsejo que lo pongas a ON.
  #3 (permalink)  
Antiguo 24/07/2007, 06:16
 
Fecha de Ingreso: julio-2003
Ubicación: Colombia
Mensajes: 591
Antigüedad: 20 años, 9 meses
Puntos: 7
Re: Problemas para subir archivos...

tmp_name es el nombre temporal que le da PHP al archivo que se esta subiendo al server.
Este archivo se mueve a otro directorio del servidor con la funcion move_uploaded_file

mira:
http://www.php.net/manual/es/feature...ad.post-method

Chaop!
__________________
Visita www.legionlandrover.com
  #4 (permalink)  
Antiguo 24/07/2007, 09:33
 
Fecha de Ingreso: mayo-2003
Mensajes: 174
Antigüedad: 21 años
Puntos: 0
Re: Problemas para subir archivos...

Ya esta solucionado... gracias a ambos por la ayuda

Por si a alguien le sirve quedo de la siguiente forma:

Código PHP:
<?
...
$path"../../fotos";

if (
is_uploaded_file($HTTP_POST_FILES['foto1']['tmp_name'])){
    if (
is_uploaded_file($HTTP_POST_FILES['foto2']['tmp_name'])){
        if (
is_uploaded_file($HTTP_POST_FILES['foto3']['tmp_name'])){
            
$name_foto3=id."$ID"._.foto3.".jpg";
            
copy($HTTP_POST_FILES['foto3']['tmp_name'], "$path/$name_foto3");
        }else{
            
$name_foto3 "no_foto3.jpg";}
        
$name_foto2=id."$ID"._.foto2.".jpg";
        
copy($HTTP_POST_FILES['foto2']['tmp_name'], "$path/$name_foto2");
    }else{
        
$name_foto2 "no_foto2.jpg";
        
$name_foto3 "no_foto3.jpg";}
    
$name_foto1=id."$ID"._.foto1.".jpg";
     
copy($HTTP_POST_FILES['foto1']['tmp_name'], "$path/$name_foto1");
}else{
$name_foto1 "no_foto1.jpg";
$name_foto2 "no_foto2.jpg";
$name_foto3 "no_foto3.jpg";
}
...
?>
Lo uso para ingresar registros en una BD de propiedades con 3 fotos cada uno, pero da la opcion de hacerlo con 1, 2 o las 3 fotos... Yo les asigno el nombre al archivo usando el ID, por lo tanto no uso $_FILE['archivo']['name']...

Si le sirve a alguien bien
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 09:49.