Se puede usar un script PHP con un formulario HTML para permitir a los usuarios subir archivos al servidor. Inicialmente, los archivos se cargan en un directorio temporal y luego se reubican en un destino mediante un script PHP.
La información en la página phpinfo.php describe el directorio temporal que se utiliza para subir archivos como upload_tmp_dir y el tamaño máximo permitido de los archivos que se pueden subir se expresa como upload_max_filesize . Estos parámetros se establecen en el archivo de configuración PHP php.ini
El proceso de cargar un archivo sigue estos pasos:
El usuario abre la página que contiene un formulario HTML con un archivo de texto, un botón Examinar y un botón Enviar.
El usuario hace clic en el botón Examinar y selecciona un archivo para cargar desde la PC local.
La ruta completa al archivo seleccionado aparece en el texto presentado y luego el usuario hace clic en el botón Enviar.
El archivo seleccionado se envía al directorio temporal en el servidor.
El script PHP que se especificó como el controlador de formulario en el atributo de acción del formulario verifica que el archivo haya llegado y luego copia el archivo en un directorio previsto.
El script PHP confirma el éxito para el usuario.
Como es habitual al escribir archivos, es necesario que tanto las ubicaciones temporales como las finales tengan permisos establecidos que permitan la escritura de archivos. Si alguno está configurado para ser de solo lectura, el proceso fallará.
Un archivo cargado puede ser un archivo de texto o imagen o cualquier documento.
Creando un formulario de carga
El siguiente código HTM a continuación crea un formulario de carga. Esta forma tiene el atributo de método establecido en post y el atributo enctype se establece en multipart/form-data
Producirá el siguiente resultado:
Crear un script de carga
Hay una variable PHP global llamada $ _FILES. Esta variable es una matriz de doble dimensión asociada y conserva toda la información relacionada con el archivo cargado. Entonces, si el valor asignado al atributo de nombre de la entrada al cargar el formulario era un archivo, PHP crearía las siguientes cinco variables:
- $ _FILES ['file'] ['tmp_name'] - el archivo cargado en el directorio temporal en el servidor web.
- $ _FILES ['file'] ['name'] - el nombre real del archivo cargado.
- $ _FILES ['file'] ['size'] - el tamaño en bytes del archivo cargado.
- $ _FILES ['file'] ['type'] - el tipo MIME del archivo cargado.
- $ _FILES ['file'] ['error'] - el código de error asociado con la carga de este archivo.
Ejemplo:
El ejemplo siguiente debería permitir cargar imágenes y devolver el resultado como información de archivo cargada.
Producirá el siguiente resultado: