PHP | Array $_FILES (variables de carga de archivo HTTP)

¿Cómo sabe el manejador de archivos PHP cierta información básica como el nombre del archivo, el tamaño del archivo, el tipo de archivo y algunos atributos sobre el archivo que se seleccionó para cargar? Echemos un vistazo a lo que se está reproduciendo detrás de escena. $_FILES es una array global asociativa bidimensional de elementos que se cargan a través del método HTTP POST y contiene los atributos de archivos como:

Atributo Descripción
[nombre] Nombre del archivo que se está cargando
[Talla] Tamaño del archivo
[escribe] Tipo de archivo (como .pdf, .zip, .jpeg…..etc)
[tmp_nombre] Una dirección temporal donde se encuentra el archivo antes de procesar la solicitud de carga
[error] Tipos de errores ocurridos cuando el archivo se está cargando

Ahora vea ¿Cómo se ve la array?

$_FILES[input-field-name][name]
$_FILES[input-field-name][tmp_name]
$_FILES[input-field-name][size]
$_FILES[input-field-name][type]
$_FILES[input-field-name][error]

Enfoque: asegúrese de tener XAMPP o WAMP instalado en su máquina. En este artículo, utilizaremos el servidor XAAMP.

Veamos ejemplos de cómo funciona esta array de PHP en el primer ejemplo. 

Ejemplo 1 : 

HTML

<?php
 
echo "<pre>";
print_r($_FILES);
echo "</pre>";
 
?>
 
<form action="" method="post" enctype="multipart/form-data">
    <input type="file" name="file">
    <input type="submit" value="Upload Image">
</form>

En el script anterior, antes de cargar el archivo

 

Una vez que seleccionamos el archivo y lo cargamos, la función print_r mostrará la información de la array asociativa superglobal de PHP $_FILES .

array de salida

Ejemplo 2: agregue el código HTML seguido de la secuencia de comandos PHP en diferentes archivos. Hagamos un formulario HTML para cargar el archivo index.html 

HTML

<!DOCTYPE html>
<html>
 
<head>
    <title>GeeksForGeeks</title>
    <style type="text/css">
        div {
            background: #4CB974;
            text-align: center;
            font-size: 20px;
            padding: 30px;
            color: #fff;
            font-family: sans-serif;
        }
 
        form {
            border: 1px solid #1f1f1f;
            padding: 20px;
            position: absolute;
            top: 50%;
            left: 50%;
            transform: translate(-50%, -50%);
        }
    </style>
</head>
 
<body>
    <form action="file-upload-manager.php" method="post" enctype="multipart/form-data">
        <!--multipart/form-data ensures that form
        data is going to be encoded as MIME data-->
 
        <h2>Upload File</h2>
        <input type="file" name="photo" id="fileSelect"><br><br>
        <input type="submit" name="submit" value="Upload"><br><br>
        <!-- name of the input fields are going to be used in our php script-->
        <div> This Video is made for GFG</div>
    </form>
</body>
 
</html>

Ahora, es hora de escribir un script PHP que pueda manejar el sistema de carga de archivos. administrador-de-carga-de-archivos.php 

PHP

<?php
   
// Check if the form was submitted
   
if ($_SERVER["REQUEST_METHOD"] == "POST") {
   
    // Check if file was uploaded without errors
   
    if (isset($_FILES["photo"]) && $_FILES["photo"]["error"] == 0) {
         
        $file_name     = $_FILES["photo"]["name"];
        $file_type     = $_FILES["photo"]["type"];
        $file_size     = $_FILES["photo"]["size"];
        $file_tmp_name = $_FILES["photo"]["tmp_name"];
        $file_error = $_FILES["photo"]["error"];
         
        echo "<div style='text-align: center; background: #4CB974;
        padding: 30px 0 10px 0; font-size: 20px; color: #fff'>
        File Name: " . $file_name . "</div>";
         
        echo "<div style='text-align: center; background: #4CB974;
        padding: 10px; font-size: 20px; color: #fff'>
        File Type: " . $file_type . "</div>";
         
        echo "<div style='text-align: center; background: #4CB974;
        padding: 10px; font-size: 20px; color: #fff'>
        File Size: " . $file_size . "</div>";
         
        echo "<div style='text-align: center; background: #4CB974;
        padding: 10px; font-size: 20px; color: #fff'>
        File Error: " . $file_error . "</div>";
         
        echo "<div style='text-align: center; background: #4CB974;
        padding: 10px; font-size: 20px; color: #fff'>
        File Temporary Name: " . $file_tmp_name . "</div>";
         
    }
}
?>

Una vez que enviamos el formulario en el script anterior, podemos acceder a la información a través de una array asociativa superglobal de PHP $_FILES . Además de usar la array $_FILES, muchas funciones integradas juegan un papel importante. Una vez que hayamos terminado de cargar un archivo, en la secuencia de comandos verificaremos el método de solicitud del servidor, si es POST, continuará; de lo contrario, el sistema arrojará un error. Más tarde, accedimos a la array $_FILES para obtener el nombre del archivo, el tamaño del archivo y el tipo de archivo. Una vez que tengamos esa información imprima la información del archivo usando echo

Producción: 

 

Referencia: http://php.net/manual/en/reserved.variables.files.php

PHP es un lenguaje de secuencias de comandos del lado del servidor diseñado específicamente para el desarrollo web. Puede aprender PHP desde cero siguiendo este tutorial de PHP y ejemplos de PHP .

Publicación traducida automáticamente

Artículo escrito por Saptarshi_Das y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *