PHP | Cargando archivo

¿Alguna vez te has preguntado cómo los sitios web construyen su sistema de carga de archivos en PHP? Aquí conoceremos el proceso de carga de archivos. Una pregunta que se le puede ocurrir: ‘¿Podemos cargar cualquier tipo de archivo con este sistema?’. La respuesta es sí, podemos subir archivos con diferentes tipos de extensiones. 

Enfoque: para ejecutar el script PHP necesitamos un servidor. Así que asegúrese de tener el servidor XAMPP o el servidor WAMP instalado en su máquina con Windows.

Fragmento de código HTML: a continuación se muestra el código fuente HTML del formulario HTML para cargar el archivo en el servidor. En la etiqueta HTML <form> , estamos usando “ enctype=’multipart/form-data ”, que es un tipo de codificación que permite enviar archivos a través de un método POST . Sin esta codificación, los archivos no se pueden enviar a través del método POST. Debemos usar este enctype si desea permitir que los usuarios carguen un archivo a través de un formulario.

índice.html:

HTML

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>File Upload Form</title>
</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>
        <label for="fileSelect">Filename:</label>
        <input type="file" name="photo" id="fileSelect">
        <input type="submit" name="submit" value="Upload">
        <!-- name of the input fields are going to be used in our php script-->
         
<p><strong>Note:</strong>Only .jpg, .jpeg, .png formats allowed to a max size of 2MB.</p>
 
    </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)
    {
        $allowed_ext = array("jpg" => "image/jpg",
                            "jpeg" => "image/jpeg",
                            "gif" => "image/gif",
                            "png" => "image/png");
        $file_name = $_FILES["photo"]["name"];
        $file_type = $_FILES["photo"]["type"];
        $file_size = $_FILES["photo"]["size"];
     
        // Verify file extension
        $ext = pathinfo($filename, PATHINFO_EXTENSION);
 
        if (!array_key_exists($ext, $allowed_ext))       
            die("Error: Please select a valid file format.");
         
        // Verify file size - 2MB max
        $maxsize = 2 * 1024 * 1024;
 
        if ($file_size > $maxsize)       
            die("Error: File size is larger than the allowed limit of 2MB");       
     
        // Verify MYME type of the file
        if (in_array($file_type, $allowed_ext))
        {
            // Check whether file exists before uploading it
            if (file_exists("upload/".$_FILES["photo"]["name"]))           
                echo $_FILES["photo"]["name"]." already exists!";
             
            else
            {
                move_uploaded_file($_FILES["photo"]["tmp_name"],
                        "uploads/".$_FILES["photo"]["name"]);
                echo "Your file uploaded successfully.";
            }
        }
        else
        {
            echo "Error: Please try again!";
        }
    }
    else
    {
        echo "Error: ". $_FILES["photo"]["error"];
    }
}
?>

En el script anterior, una vez que enviamos el formulario, luego 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 el método 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 obtuvimos esa información, validamos el tamaño y el tipo del archivo. Al final, buscamos en la carpeta donde se va a subir el archivo, para comprobar si el archivo ya existe o no. Si no, hemos usado move_uploaded_file() para mover el archivo desde la ubicación temporal al directorio deseado en el servidor y listo. 

Producción:

 

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 *