Foros del Web » Programando para Internet » PHP »

Subir archivos a mi servidor a través de formulario

Estas en el tema de Subir archivos a mi servidor a través de formulario en el foro de PHP en Foros del Web. Hola gente, Necesito modificar este codigo para que los archivos se suban a una carpeta en mi servidor y que queden "para siempre" digamos, que ...
  #1 (permalink)  
Antiguo 26/03/2008, 17:47
 
Fecha de Ingreso: diciembre-2007
Ubicación: Buenos Aires
Mensajes: 328
Antigüedad: 16 años, 4 meses
Puntos: 1
Subir archivos a mi servidor a través de formulario

Hola gente,

Necesito modificar este codigo para que los archivos se suban a una carpeta en mi servidor y que queden "para siempre" digamos, que no sean temporales. Como no entiendo nada de php no puedo modificar el codigo yo, alguno no le puede modificar algo para que quede como lo necesito? Por favor!

Este es el codigo que vi en el FAQ:


Cita:
Iniciado por GhostRider Ver Mensaje
Tema: Archivos
Pregunta: ¿Cómo puedo subir archivos a través de un formulario?
Respuesta: Con el siguiente ejemplo.

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>
Funciona de la siguiente manera:

El código sube un archivo via HTTP POST, este se guarda automaticamente con un nombre y en una carpeta temporales del servidor mientras corre el codigo, despues el mismo servidor lo borra (por seguridad). La función is_uploaded_file() verifica que este procedimiento haya sido exitoso. Posteriormente el archivo es movido a su posición final con la función move_uploaded_file)


Notas:
  • Es necesario el atributo enctype="multipart/form-data" del formulario, es lo que indica que se están enviando archivos.
  • El primer key de $_FILES corresponde al name del filebox; En el ejemplo "fichero".
  • Si se quiere condicionar la carga del archivo según su peso y/o tipo se deberá hacer a través de los datos arrojados por la variable superglobal $_FILES antes de colocarlo en su posición final. Por ejemplo:
Código PHP:
If(is_uploaded_file($_FILE['fichero']['tmp_file']) {
    If(
$_FILES['fichero']['type']=="image/jpeg") {
        
// Proseguimos solo si se trata de un JPG
        
move_uploaded_file("...etc..."); 
    } else echo 
"El archivo no es una imágen JPG";
// bien puede condicionarse $_FILES['fichero']['size'] > XXXX
// donde 'XXXX' es un número entero representando los bytes máximos del archivo 
  • En el ejemplo el archivo es guardado en la misma carpeta, si se quiere modicar esto ha de cambiarse el parámetro correspondiente de la función move_uploaded_file(). Por ejemplo:
Código PHP:
$ruta"carpeta/".$_FILES['fichero']['name']; // Se guardaría dentro de "carpeta" con el nombre original
// $ruta= "carpeta/nuevo_nombre.jpg"; si también se quiere renombrar
move_uploaded_file($_FILES['fichero']['tmp_name'], $ruta);

// Puede guardarse $ruta en una Base de Datos para su uso posterior 
  • El ejemplo funciona con versiones PHP 4.1.x ó superior y con register_globals en OFF.
  • La carga de archivos es dependiente de la configuración del servidor: disponer de permisos, no exeder el tamaño límite, el nombre de la carpeta personal, etc.

Espero les sea de utilidad.
  #2 (permalink)  
Antiguo 26/03/2008, 18:03
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 11 meses
Puntos: 2135
Re: Subir archivos a mi servidor a través de formulario

Ese código sirve para subirlos para "siempre", ya que no se quedan en los archivos temporales, si no que se suben a la carpeta que indiques.

Saludos.
  #3 (permalink)  
Antiguo 26/03/2008, 18:07
 
Fecha de Ingreso: diciembre-2007
Ubicación: Buenos Aires
Mensajes: 328
Antigüedad: 16 años, 4 meses
Puntos: 1
Re: Subir archivos a mi servidor a través de formulario

Gracias por tu respuesta :)

Ahí hay 3 códigos separados (en realidad 2, por que el ultimo es una variable del otro), tengo que insertar los 2 ??? Como sería todo junto, es decir, como lo tengo que colocar en mi web?

Saludos!
  #4 (permalink)  
Antiguo 26/03/2008, 18:11
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 11 meses
Puntos: 2135
Re: Subir archivos a mi servidor a través de formulario

De hecho solo necesitas el primer script, ya tiene el código para upload.

Saludos.
  #5 (permalink)  
Antiguo 26/03/2008, 18:13
 
Fecha de Ingreso: diciembre-2007
Ubicación: Buenos Aires
Mensajes: 328
Antigüedad: 16 años, 4 meses
Puntos: 1
Re: Subir archivos a mi servidor a través de formulario

Ah buenísimo.

Y qué debería modificar para que se suba a la carpeta "X" que yo necesite ?

Por que lo probé así como está pero el archivo no se sube a ningún lado.

Pd: Perdon por mi ignorancia jaja
  #6 (permalink)  
Antiguo 26/03/2008, 19:13
Avatar de jaronu  
Fecha de Ingreso: febrero-2008
Mensajes: 2.183
Antigüedad: 16 años, 2 meses
Puntos: 52
Re: Subir archivos a mi servidor a través de formulario

Hola federic(),

mirate los dos primeros enlaces de este post, explican como subir imagenes el primero y cialquier archivo el segundo.

Un saludo
  #7 (permalink)  
Antiguo 26/03/2008, 19:17
Avatar de pato12  
Fecha de Ingreso: septiembre-2007
Ubicación: Salta
Mensajes: 1.620
Antigüedad: 16 años, 6 meses
Puntos: 101
Re: Subir archivos a mi servidor a través de formulario

Estas loneas( no estoy seguro ):
Código PHP:
 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 
y remplasalas por:
Código PHP:
$des_tino="Nombre de la carpeta/";
 if(
is_uploaded_file($des_tino)) { // verifica haya sido cargado el archivo 
        
if(move_uploaded_file($des_tino$_FILES['fichero']['name'])) { // se coloca en su lugar final 
Suerte
Salu2
__________________
Half Music - www.halfmusic.com
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

SíEste tema le ha gustado a 1 personas




La zona horaria es GMT -6. Ahora son las 19:25.