Subir y descargar ficheros con php

Hola experto, ¿disculpe podría explicarme la sintaxis para subir un archivo?
Encontré que con esto:
<form action="cargar.php" method="post" enctype="multipart/form-data" name="form1">
<p align="center">Archivo
   <input name="archivo" type="file" id="archivo">
  </p>
<p align="center"><input name="boton" type="submit" id="boton" value="Enviar"></p>
</form>
Me permite subir un archivo, pero a q directorio temporal lo manda?
if($boton) {
    if (is_uploaded_file($HTTP_POST_FILES['archivo']['tmp_name'])) {
      copy($HTTP_POST_FILES['archivo']['tmp_name'], $HTTP_POST_FILES['archivo']['name']);
      $subio = true;
    }
if($subio) {
    echo "El archivo subio con exito";
} else {
    echo "El archivo no cumple con las reglas establecidas";
}
die();
}                          que significa el ['archivo']['name'] es ya una sintaxis o puedo cambiar el ['name'] por destino u otro nombre?
Gracias por su tiempo

1 Respuesta

Respuesta
1
Primero que nada es importante saber que la función $HTTP_POST_FILES ha dejado funcionar ( dependiendo de la versión de PHP que uses ), en su lugar tienes que usar $_FILES.
Ahora, a tu pregunta, ['tmp_name'] es origen del archivo y ['name'] el nombre. El archivo se sube al mismo directorio donde se está ejecutando el script, para cambiar el destino, simplemente añade antes de ['name'] el directorio.
if(isset($boton))
{
    if (is_uploaded_file($_FILES['archivo']['tmp_name']))
    {
        $subio = move_uploaded_file($_FILES['archivo']['tmp_name'], "./directorio/archivos/" . $_FILES['archivo']['name']);
    }
   if($subio)
   {
       echo "El archivo subio con exito";
   }else{
       echo "El archivo no cumple con las reglas establecidas";
   }
}
Como puedes ver, el archivo se subirá en el directorio directorio/archivos/. Otros detalles que puedes ver, es que he cambiado copy por move_uploaded_file y if($boton) por if(isset($boton)).
Espero haberte sido de ayuda, si tienes cualquier duda o necesitas que lo explique más detallado, házmelo saber.
Muchas gracias, tu si explicas php y la version que ocupo creo que es 6; instalé el AppServ 2.6.0 q incluiye php.
Solo una aclaración: en el codigo enctype="multipart/form-data" name="form1" éste name=form1 es opcional? porque en mi archivo "cargar.php" no veo la relacion ni con el id="archivo"

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas