El error en PHP ocurre cuando no tratamos los casos en consecuencia.
Hay muchos errores que ocurren durante la carga del archivo. Los errores son los siguientes
- El tamaño del archivo es mayor que el tamaño esperado
- La extensión no es correcta o podemos decir que el tipo de archivo no coincide según las condiciones.
- Falta el directorio.
- El archivo ya existe en el directorio preferido.
Podemos acceder al código de error mediante la variable incorporada $_FILES[«archivo»][«error»] donde nos da el código de error y se definen de la siguiente manera.
- 0 => ‘El archivo se cargó con éxito
- 1 => El archivo subido cruza el límite
- 2 => El archivo cargado supera el límite mencionado en el formulario HTML.
- 3 => El archivo se cargó parcialmente o hubo algún error entre la carga.
- 4 => No se cargó ningún archivo.
- 6 => Falta una carpeta temporal.
- 7 => Error al escribir el archivo en el disco.
- 8 => Una extensión de PHP detuvo el proceso de carga.
Ahora entendemos esto dando el siguiente ejemplo.
Ejemplo 1: En este ejemplo, se enumeran muchos errores. Toma el nombre del directorio y el archivo del dispositivo local y luego lo envía a través del método POST a «file.php». Luego verifica la creación del directorio, si no, crea uno; de lo contrario, verifica la extensión y verifica las extensiones permitidas enumeradas en la array (puede agregar de acuerdo con los requisitos del programa). Luego verifica el tamaño del archivo y luego verifica la existencia del archivo.
file.php
<!DOCTYPE html> <?php $target_dir = $_POST["directory_name"]."/"; $target_file = $target_dir . basename($_FILES["file"]["name"]); $name = $_FILES["file"]["name"]; $type = $_FILES["file"]["type"]; $size = $_FILES["file"]["size"]; $flag = 1; if($_SERVER["REQUEST_METHOD"] == "POST") { if(!empty($_POST["directory_name"])) { if(!is_dir($_POST["directory_name"])) { echo "Creating Directory ..!!"; mkdir($_POST["directory_name"]); $flag = 1; } } else { echo "<b>Error: Specify the directory name...</b>"; $flag = 0; exit; } // Check if file was uploaded without errors if(isset($_FILES["file"]) && $_FILES["file"]["error"] == 0) { $allowed_ext = array("jpg" => "image/jpg", "jpeg" => "image/jpeg", "png" => "image/png"); // Verify file extension $ext = pathinfo($name, PATHINFO_EXTENSION); if (!array_key_exists($ext, $allowed_ext)) { die("<b>Error: Please select a valid file format.</b>"); } $maxsize = 200000; if ($size > $maxsize) { die("<b>Error: ". $_FILES["file"]["error"] . " File size is larger than the allowed limit.</b>"); } // Verify MYME type of the file if (in_array($type, $allowed_ext)) { // Check whether file exists before uploading it if (file_exists("$target_dir/".$_FILES["file"]["name"])) { echo "<b>".$_FILES["file"]["name"]." is already exists.</b>"; } else { if (move_uploaded_file($_FILES["file"]["tmp_name"], $target_file)) { echo "<b>The ". $_FILES["file"]["name"]. " has been uploaded.</b>"; } else { echo "<b>Error : ". $_FILES["file"]["error"] . " Sorry, there was an error uploading your file."; } } } else { echo "<b>Error: ". $_FILES["file"]["error"] . " Please try again.</b>"; } } else { echo "<b>Error: ". $_FILES["file"]["error"] . " File is not uploaded</b>"; } } ?> </body> </html>
Producción:
Publicación traducida automáticamente
Artículo escrito por rohanmittal1366 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA