1b subirFichero
Ejemplo básico para subir un fichero
Ejemplo básico y completo para subir un archivo en PHP
Dos archivos: uno para el formulario HTML donde el usuario puede seleccionar el archivo y otro en PHP para procesar la subida.
0. Crea la carpeta uploads/
Tendrás que crear la carpeta uploads. y darle permisos de escritura
1. Formulario HTML (index.html)
fíjate en el tipo "FILE"
<!DOCTYPE html>
<html lang="es">
<head>
<meta charset="UTF-8">
<title>Subir Archivo</title>
</head>
<body>
<h1>Subir un archivo</h1>
<form action="subir.php" method="POST" enctype="multipart/form-data">
<label for="archivo">Selecciona un archivo para subir:</label>
<input type="file" name="archivo" id="archivo" required><br><br>
<input type="submit" value="Subir Archivo">
</form>
</body>
</html>
2. Archivo PHP para procesar la subida (subir.php)
Fíjate, comenta y actualiza en tu documentación los diferentes apartados.
Crea entradas con echo para testear los datos del archivo subido en la pantalla como echo $_FILES ...
<?php
// Verificar si el formulario ha sido enviado
if ($_SERVER['REQUEST_METHOD'] == 'POST') {
// Comprobar si el archivo ha sido cargado sin errores
if (isset($_FILES['archivo']) && $_FILES['archivo']['error'] == 0) {
// Información del archivo
$nombre_archivo = $_FILES['archivo']['name'];
$tipo_archivo = $_FILES['archivo']['type'];
$tmp_archivo = $_FILES['archivo']['tmp_name'];
$tamaño_archivo = $_FILES['archivo']['size'];
// Definir el directorio de destino
$directorio_destino = 'uploads/'; // Asegúrate de crear esta carpeta y darle permisos de escritura
// Comprobar el tamaño del archivo (por ejemplo, limitar a 2MB)
if ($tamaño_archivo <= 2 * 1024 * 1024) {
// Mover el archivo desde el directorio temporal al directorio de destino
if (move_uploaded_file($tmp_archivo, $directorio_destino . $nombre_archivo)) {
echo "El archivo '$nombre_archivo' ha sido subido exitosamente.";
} else {
echo "Error al mover el archivo al directorio de destino.";
}
} else {
echo "El archivo es demasiado grande. El tamaño máximo permitido es 2MB.";
}
} else {
echo "No se ha subido ningún archivo o ha ocurrido un error en la carga.";
}
} else {
echo "Por favor, use el formulario para subir un archivo.";
}
?>
Documentación
-
Formulario HTML (index.html) :
-
Se utiliza un formulario con el atributo
enctype="multipart/form-data"
para permitir la carga de archivos. -
El input
type="file"
permite seleccionar el archivo a subir. -
Script PHP (subir.php) :
-
Primero, se verifica que la solicitud sea un
POST
y que el archivo no tenga errores con$_FILES['archivo']['error'] == 0
. - Se obtiene información sobre el archivo (nombre, tipo, tamaño, archivo temporal).
- Se verifica el tamaño del archivo (en este caso, limitado a 2MB).
- Se utiliza
move_uploaded_file
para mover el archivo desde el directorio temporal a un directorio de destino en el servidor (en este caso, la carpetauploads/
). - Si todo es correcto, se confirma que el archivo se subió exitosamente, si no, se muestra un error.
Permisos de carpeta :
Asegúrate de que la carpeta uploads/
tenga permisos de escritura para que PHP pueda mover el archivo a esa ubicación.
- Seguridad : Este ejemplo es muy básico. En un entorno de producción, deberías validar el tipo de archivo y aplicar medidas de seguridad adicionales, como renombrar el archivo o verificar su extensión para evitar posibles vulnerabilidades.
Con este código básico, tendrás una forma funcional de subir archivos en PHP sin necesidad de interactuar con una base de datos.