Lo primero que tenemos que crear es un formulario en HTML:
<form action="subirarchivo.php" method="post" enctype="multipart/form-data">
<input name="fichero" type="file">
<input type="submit" value="Enviar">
</form>
Como vemos las características principales del formulario para poder subir archivos es que sea de tipo "multipart/form-data" y que en el campo action nos lleve a un archivo .php que vemos a continuación:
$ruta_fichero = "ficheros/" . basename($_FILES['fichero']['name']);
if (move_uploaded_file($_FILES['fichero']['tmp_name'], $ruta_fichero)) {
echo "El fichero se subió con éxito.\n";
} else {
echo "¡Se produjo un error en la subida del fichero";
}
En
la variable $ruta_fichero se guarda la ruta donde se quiere guardar el
fichero y el nombre del fichero que se guardará, ya que el fichero está
subido en una carpeta de archivos temporales, y la función
move_upload_file lo que hace es mover ese fichero a la ruta que nosotros
le indicamos y poniendole el nombre que nosotros queramos.
En
este caso el nombre que le ponemos es el que tiene el fichero que vamos
a subir, pero podríamos ponerle el que quisiésemos simplemente
cambiando
basename($_FILES['fichero']['name'] por lo que queramos.
POSIBLES ERRORES A LA HORA DE SUBIR UN ARCHIVO MEDIANTE PHP:
Los errores más comunes son los siguientes:
No tienes permisos en la carpeta que quieres guardar el archivo, para solucionarlo, ve al directorio donde quieres guardar el archivo, le das a propiedades, seguridad, editar y das permisos para que el servidor pueda guardar archivos en esa carpeta.
No tienes permisos para guardar archivos en la carpeta temporal, para solucionarlo tienes que ir a php.ini, ver cual es la carpeta en la que se guardan los archivos temporales que suele estar en c:\\Windows\Temp y das permiso al servidor.
No has indicado bien la ruta a guardar, revisa la ruta que has escrito para guardar el fichero y también verifica que las carpetas estén creadas.
El fichero tiene demasiado tamaño(Para delimitar el tamaño de los ficheros a subir podéis agregar esta línea al formulario:
Y poner un if al código PHP como el siguiente:
if( $_FILES['fichero']['size'] > 1000000 ) {
echo "No se pueden subir archivos mayores a 1MB";
} else {
// el codigo PHP anterior. }
El
tamaño máximo de los ficheros a subir puedes configurarlo dentro de
php.ini, si utilizas internet imformation server también tendrás que
cambiarlo dentro de este.
Si tenéis alguna duda o quereis que haga algún otro tutorial simplemente dejadme un comentario y lo haré encantado.
CAPÍTULO 4
No hay comentarios:
Publicar un comentario