Cargar archivo en PHP

Cargar archivo en PHP

La carga de archivos es una tarea común para las aplicaciones web. Se requieren diferentes tipos de archivos para cargar según la aplicación. Archivos de imagen, archivos de texto, archivos PDF, archivos XML, etc. se puede cargar utilizando script php. Php puede cargar uno o más archivos. Hay algunas directivas de PHP en el PHP.ini Archivo de configuración y funciones incorporadas de PHP relacionadas con la carga de archivos que se discute en este tutorial. HTML tiene un atributo particular en la etiqueta de formulario para tareas de carga de archivos, es decir cisquero.

Directivas PHP para la carga de archivos

Directiva de PHP Objetivo
File_uploads El valor de esta directiva debe ser En Para cargar el archivo usando el script php. El valor predeterminado de esta directiva es En.
cargue_tmp_dir Se usa para establecer el directorio temporal donde se cargará el archivo.
subaLAD_MAX_FILESIZE Se usa para establecer el tamaño máximo del archivo que se puede cargar.
max_file_uploads Se usa para establecer el número de archivos que se pueden cargar.
post_max_size Se utiliza para establecer el tamaño máximo de los datos postales y el valor de esta directiva debe ser mayor que el valor de la directiva upload_max_filesize porque el archivo está cargado por la solicitud de publicación.
max_input_time Se utiliza para establecer la cantidad máxima de tiempo para leer los datos del archivo de carga.
max_execution_time Se utiliza para establecer la cantidad máxima de tiempo en segundos para ejecutar el script para cargar el archivo.
limite de memoria Se utiliza para establecer el tamaño de memoria máximo requerido para ejecutar un script PHP para cargar el archivo.

Funciones de PHP para la carga de archivos

Dos funciones incorporadas se utilizan principalmente en PHP para cargar el archivo que se menciona a continuación.

A. is_uploaded_file ()
Se usa para verificar si el archivo se carga a través de la publicación HTTP que ayuda a evitar un ataque del usuario malicioso.

B. Move_UPLOADED_FILE ()
Se utiliza para mover el archivo cargado a la ubicación del servidor web. Esta función devolverá verdadero si el archivo se carga y se mueve correctamente.

Variable de carga de archivos PHP

La variable de matriz $ _files almacena toda la información relacionada con la carga de un archivo en el servidor. Es una variable superglobal del PHP a la que se puede acceder en cualquier lugar del script. Contiene cinco tipos de información: nombre de archivo, tipo, tamaño, nombre de archivo temporal y errores relacionados con la carga del archivo. El propósito de cada valor de la matriz $ _file se ha mencionado a continuación. Supongamos que el nombre del nombre del campo de carga es 'subir' aquí.

A. $ _Files ['cargar'] ['nombre']
Se usa para obtener el nombre de archivo original que ha sido cargado por la computadora del cliente.

B. $ _Files ['cargar'] ['tmp_name']
Se utiliza para obtener el nombre de archivo temporal que se ha almacenado en el servidor temporalmente.

C. $ _Files ['cargar'] ['tipo']
Se usa para obtener el tipo mime del archivo cargado.

D. $ _Files ['cargar'] ['size']
Se usa para obtener el tamaño del archivo cargado en bytes.

mi. $ _Files ['cargar'] ['Error']
Se usa para obtener el código de error relacionado con la tarea de carga. La variable puede contener cualquiera de los 7 tipos de valores que se mencionan a continuación.

Código de error Descripción
1- upload_err_ok Se genera cuando el archivo se carga correctamente.
2- upload_err_ini_size Genera si el tamaño del archivo excede el valor del subaLAD_MAX_FILESIZE directiva que se define en el PHP.archivo ini.
3- upload_err_Partial Genera si el tamaño del archivo excede el valor de la directiva max_file_size que se define en el formulario HTML.
4- upload_err_no_file Genera si no se carga ningún archivo.
5- upload_err_no_tmp_dir Genera si no faltan directorio temporal.
6- upload_err_cant_write Genera si no hay permiso de escritura en la ubicación del servidor.
7- upload_err_extension Genera si la extensión de PHP detiene la tarea de carga.

Cargar archivo usando php

Se han mostrado diferentes ejemplos de carga del archivo utilizando el script PHP en esta parte del tutorial.

Ejemplo 1: cargar cualquier tipo de archivo

Puede cargar el archivo en la ubicación actual desde donde se está ejecutando el script PHP o en una carpeta particular. Debe crear la carpeta en la ubicación del servidor para cargar un archivo dentro de una carpeta en particular antes de ejecutar el script PHP. He creado una carpeta llamada 'cargas ' Dentro de la carpeta de trabajo. Cree un archivo PHP con el siguiente script que cargará un archivo de cualquier tipo dentro del 'cargas ' carpeta. Un formulario HTML con un campo de tipo de archivo y un botón de envío se ha utilizado en el script para seleccionar el archivo de la computadora del cliente para cargar. Si 1 se genera como un código de error después de cargar el archivo, el archivo se carga correctamente. A continuación, el Move_UPLOAD_FILE () La función se ha utilizado para mover el archivo cargado a la ubicación del servidor. El mensaje de éxito se imprimirá si el archivo se carga en la ubicación del servidor correctamente; de lo contrario, se mostrará un mensaje de error.

// verificar que cualquier archivo esté seleccionado o no
if (isset ($ _ archivos ['uploadfile']))

// verificar cualquier error de carga existe o no
if ($ _files ['uploadFile'] ['Error'] === upload_err_ok)

// Lee el nombre de archivo original
$ filename = $ _files ['uploadfile'] ['name'];
// leer el nombre de archivo temporal
$ filetEmppath = $ _files ['uploadfile'] ['tmp_name'];
// Establecer la ruta del archivo de carga
$ filepath = dirname (__ archivo__).'/Subidas/'.$ nombre de archivo;
// Sube el archivo usando la función Move_upload_file ()
if (mude_uploaded_file ($ filetEmppath, $ filepath))

// Imprimir el mensaje de éxito
eco '

El archivo se carga correctamente.

';

demás

// Imprima el mensaje de error
eco '

Error de cargar el archivo.
'. $ _Files ['uploadFile'] ['Error']. '

';


demás

// Imprima el mensaje de error
eco '

Error de cargar el archivo.
'. $ _Files ['uploadFile'] ['Error']. '

';


demás

?>




Cargar archivo usando php



Seleccione Archivo:





?>

Producción
La siguiente salida aparecerá si el script se ejecuta desde el servidor web.

Clickea en el Navegar botón para seleccionar el archivo para cargar y presione el botón de carga para cargar el archivo en el servidor.

El siguiente mensaje aparecerá si el archivo se carga correctamente.

Ejemplo 2: Cargar un archivo del tipo y tamaño específicos

La forma de cargar el archivo utilizando un archivo HTML separado y el archivo php se ha mostrado en este ejemplo. Cree un archivo HTML con el siguiente script para mostrar el formulario para cargar el archivo.

cargador.html





Cargar el archivo JPEG usando PHP



Seleccione Archivo:



Cree un script PHP con el siguiente script que cargará solo el archivo JPEG y el tamaño será inferior a 300000 bytes. El tipo de archivo y el tamaño se han leído utilizando $ _files ['uploadfile'] ['type'] y $ _files ['uploadfile'] ['size'] variables. El mensaje de éxito aparecerá si el tipo de archivo cargado y el tamaño coinciden con los criterios definidos en la condición 'if'; de lo contrario se mostrará un mensaje de error.

cargada2.php

// verificar que cualquier archivo esté seleccionado o no
if (isset ($ _ archivos ['uploadfile']))

// verificar cualquier error de carga existe o no
if ($ _files ['uploadFile'] ['Error'] === upload_err_ok)

// Lee el nombre de archivo original
$ filename = $ _files ['uploadfile'] ['name'];
// leer el nombre de archivo temporal
$ filetEmppath = $ _files ['uploadfile'] ['tmp_name'];
// Lee el tamaño del archivo
$ filesize = $ _files ['uploadfile'] ['size'];
// Lee el tipo de archivo
$ filetype = $ _files ['uploadfile'] ['type'];
// verifique el tipo de archivo y el tamaño del archivo
if ($ filetype == 'image/jpeg' && $ filesize < 300000)

// Establecer la ruta del archivo de carga
$ filepath = dirname (__ archivo__).'/Subidas/'.$ nombre de archivo;
// Sube el archivo usando la función Move_upload_file ()
if (mude_uploaded_file ($ filetEmppath, $ filepath))

// Imprimir el mensaje de éxito
eco '

El archivo se carga correctamente.

';

demás

// Imprima el mensaje de error
eco '

Error de cargar el archivo.
'. $ _Files ['uploadFile'] ['Error']. '

';


demás
// Imprima el mensaje de error
eco '

El tipo o tamaño de archivo no es compatible.

';

demás

// Imprima el mensaje de error
eco '

Error de cargar el archivo.
'. $ _Files ['uploadFile'] ['Error']. '

';

incluir ('cargar forma.html ');

demás
incluir ('cargar forma.html ');
?>

Producción
En la siguiente salida, el flor.png El archivo ha sido seleccionado que no es un archivo JPEG:

La siguiente salida aparecerá después de presionar el Subir botón:

Aquí, la flor1.Se ha seleccionado el archivo JPEG que es un archivo JPEG.

Ahora, aparecerá la siguiente salida después de presionar el Subir botón:

Ejemplo 3: verifique el archivo antes de cargar

Crear un archivo php con el siguiente script que usa IS_UPLOADED_FILE () función para verificar si el archivo se carga a través de la publicación HTTP antes de mover el archivo al servidor. El script cargará solo el archivo de texto e imprimirá el contenido del archivo de texto después de cargar el archivo correctamente.

// Verifique si se selecciona o no algún archivo
if (isset ($ _ archivos ['uploadfile']))

// Lee el nombre de archivo original
$ filename = $ _files ['uploadfile'] ['name'];
// leer el nombre de archivo temporal
$ filetEmppath = $ _files ['uploadfile'] ['tmp_name'];
// Lee el tipo de archivo
$ filetype = $ _files ['uploadfile'] ['type'];
// Establecer la ruta del archivo de carga
$ filepath = dirname (__ archivo__).'/Subidas/'.$ nombre de archivo;
// Verifique el tipo de archivo
if ($ filetype == 'text/sencillo')

// verificar cualquier error de carga existe o no
if ($ _files ['uploadFile'] ['Error'] === upload_err_ok)

if (is_uploaded_file ($ filetEmppath))
// Sube el archivo usando la función Move_upload_file ()
if (mude_uploaded_file ($ filetEmppath, $ filepath))

// Imprimir el mensaje de éxito
echo $ nombre de archivo ."se sube con éxito.
";
echo "El contenido del archivo:
";
readfile ($ filepath);

demás

Echo 'Error cargar el archivo.
'. $ _Files ['uploadFile'] ['error'];


demás
El archivo echo "no está cargado.";



demás
El archivo echo "no es un archivo de texto.";

demás

?>




Cargar archivo usando php



Seleccione Archivo:




Producción
En la siguiente salida, se ha seleccionado un archivo de texto para cargar:

El contenido del archivo se ha mostrado en la salida después de cargar el archivo correctamente.

Conclusión

La tarea de carga de archivos es un requisito común para cualquier aplicación web. Los usos de la variable de carga de archivos y las funciones incorporadas de PHP se han mostrado en este tutorial utilizando múltiples ejemplos de carga de archivos. Si lo desea, puede cargar más de un archivo a la vez utilizando el script PHP que está cubierto en este tutorial. También puede cargar una carpeta que contenga múltiples archivos utilizando el script php.