¿Cómo subir un archivo en PHP?

En este artículo, aprenderemos cómo cargar un archivo usando PHP. Primero comprendamos algunas configuraciones básicas.

Enfoque: en su archivo » php.ini «, busque el parámetro «file_uploads» y configúrelo en «Activado» como se menciona a continuación.

file_uploads = On

En el archivo “index.html”, el enctype debe ser multipart/form-data y el método debe ser POST.

<form action="fileupload.php" 
    method="POST" enctype="multipart/form-data">

Ejemplo 1: Primero, creamos un archivo HTML para que podamos cargar un archivo usando un formulario a través del método de publicación , y también es importante asegurarse de que el método sea el método de publicación.

En “uploading_file.php”, primero almacenamos el nombre del directorio y la información del archivo del método de publicación, y luego verificamos la existencia del directorio, la validez de las extensiones. Podemos verificar si el tamaño del archivo es menor que el tamaño máximo del archivo junto con la existencia del archivo para que podamos cargar el archivo después de todas las validaciones.

Las extensiones que están permitidas se pueden cambiar o agregar en una array de acuerdo con los requisitos del programa.

index.html

<!DOCTYPE html>
<html>
  
<body>
    <form action="uploading_file.php" 
          method="post" 
          enctype="multipart/form-data">
        Directory<input type="text"
                        name="dirname" 
                        id="dirname">
        <br>
        Select image to upload:
        <input type="file" 
               name="fileToUpload" 
               id="fileToUpload">
        <br>
        <input type="submit" 
               value="Upload Image"
               name="submit">
    </form>
</body>
  
</html>

uploading_file.php

<!DOCTYPE html>
<?php
  
  $target_dir = $_POST["dirname"]."/";
  $target_file = $target_dir 
    . basename($_FILES["fileToUpload"]["name"]);
  $uploadOk = 1;
  
  if($_SERVER["REQUEST_METHOD"] == "POST") {
  
    // To check whether directory exist or not
    if(!empty($_POST["dirname"])) {
        if(!is_dir($_POST["dirname"])) {    
            mkdir($_POST["dirname"]);    
            $uploadOk = 1;            
        }
    }
    else {
        echo "Specify the directory name...";
        $uploadOk = 0;
        exit;    
    }
  
    // Check if file was uploaded without errors
    if(isset($_FILES["fileToUpload"]) && 
        $_FILES["fileToUpload"]["error"] == 0) {
        $allowed_ext = array("jpg" => "image/jpg",
                            "jpeg" => "image/jpeg",
                            "gif" => "image/gif",
                            "png" => "image/png");
        $file_name = $_FILES["fileToUpload"]["name"];
        $file_type = $_FILES["fileToUpload"]["type"];
        $file_size = $_FILES["fileToUpload"]["size"];
      
        // Verify file extension
        $ext = pathinfo($file_name, 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.");
        }                    
      
        // 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["fileToUpload"]["name"])) {
                echo $_FILES["fileToUpload"]["name"]." is already exists.";
            }        
            else {
                if (move_uploaded_file($_FILES["fileToUpload"]["tmp_name"], 
                  $target_file)) {
                    echo "The file ".  $_FILES["fileToUpload"]["name"]. 
                      " has been uploaded.";
                } 
                else {
                    echo "Sorry, there was an error uploading your file.";
                }
            }
        }
        else {
            echo "Error: Please try again.";
        }
    }
    else {
        echo "Error: ". $_FILES["fileToUpload"]["error"];
    }
}
?>
  
</body>
</html>

Producción:

ingrese el nombre del directorio y elija el archivo

En la carpeta «cargas» de la carpeta de trabajo, el usuario puede encontrar el archivo «gfg_sample.png» cargado.

Publicación traducida automáticamente

Artículo escrito por rohanmittal1366 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 *