IFCD0210/Practicas/Practicas_PHP/ejercicios/EJERCICIO5_PHP_FORMULARIOS_V2.php
2024-02-14 11:13:53 +01:00

68 lines
2.6 KiB
PHP

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Subir Archivo de DNI</title>
</head>
<body>
<h2>Subir Archivo de DNI</h2>
<form action="" method="post" enctype="multipart/form-data">
<label for="name">* Nombre:</label><br>
<input type="text" id="nombre" name="nombre" required><br><br>
<label for="email">* Correo Electrónico:</label><br>
<input type="email" id="email" name="email" required><br><br>
<label for="dniFile">* Subir DNI (jpg o pdf, tamaño máximo 5MB):</label><br>
<input type="file" id="dniFile" name="dniFile" accept=".jpg,.pdf" required><br><br>
<input type="submit" value="Enviar" name="submit">
</form>
</body>
</html>
<?php
// Verifica si el formulario ha sido enviado
if ($_SERVER["REQUEST_METHOD"] == "POST" && isset($_FILES["dniFile"])) {
// Nombre y correo electrónico del usuario
$nombre = $_POST["nombre"];
$email = $_POST["email"];
// Directorio donde se guardarán los archivos subidos
$directorio_subida = "dni_usuarios/";
// Nombre del archivo y ruta de destino
$nombre_archivo=$_FILES["dniFile"]["name"];
$nombre_archivo_final = time().'_'.rand(100,999).'_'.$email.'_'.$nombre_archivo;
$ruta_archivo = $directorio_subida . $nombre_archivo_final;
// Tamaño máximo permitido (5MB)
$tamano_maximo = 5 * 1024 * 1024;
// Obtiene la extensión del archivo
$extension_archivo = strtolower(pathinfo($_FILES["dniFile"]["name"], PATHINFO_EXTENSION));
// Array de extensiones permitidas
$extensiones_permitidas = array("jpg", "jpeg", "pdf");
// Verifica si el archivo es una extensión permitida y no excede el tamaño máximo
if (in_array($extension_archivo, $extensiones_permitidas) && $_FILES["dniFile"]["size"] <= $tamano_maximo) {
// Verifica si hubo algún error durante la subida del archivo
if ($_FILES["dniFile"]["error"] === 0) {
// Intenta mover el archivo al directorio de destino
if (move_uploaded_file($_FILES["dniFile"]["tmp_name"], $ruta_archivo)) {
echo "El archivo " . htmlspecialchars($nombre_archivo) . " ha sido subido exitosamente.";
} else {
echo "Lo siento, hubo un error al subir el archivo.";
}
} else {
echo "Error: " . $_FILES["dniFile"]["error"];
}
} else {
echo "Lo siento, solo se permiten archivos en formato JPG o PDF con un tamaño máximo de 5MB.";
}
}
?>