Taller de Lenguajes

Tratamiento de nombres de archivos PDF Imprimir Correo electrónico
Lunes 30 de Agosto de 2010 15:09

En este artículo veremos rápidamente cómo tratar los nombres de archivos que son subidos desde una aplicación web.

 

Al procesar un archivo enviado mediante un formulario, mediante el método POST, tenemos varias formas de tratar el nombre, entre las que podemos mencionar.






Lo más simple, dejar el mismo nombre

Si bien es lo más fácil y lo primero que uno piensa, esta solución nos puede traer algunos inconvenientes. Lo primero que hay que tener en cuenta es que los usuarios suelen nombrar a los archivos con espacios y acentos y nos puede traer problemas  al momento de querer referenciarlo.
Por ejemplo si el usuario sube el archivo

foto de ñandú.jpg

Deberíamos referenciarlo como

<a href="/foto%20de%20%F1and%FA.jpg">descargar foto de ñandú.jpg </a>


¿A qué se debe esto? A que una URL se debe codificar según el RFC 1738, para normalizar la comunicación bajo un mismo juego de caracteres.

La conversión del nombre del archivo la realizaremos con la función de PHP rawurlencode();

Así podemos tener el siguiente ejemplo:

 <a href="/<? echo rawurlencode("foto%20de%20%F1and%FA.jpg")?>">descargar foto de ñandú.jpg </a>


Dejar el mismo nombre suele ser una buena alternativa si el usuario tiene que volver a hacer uso del archivo, es decir si lo va a descargar, ya que resultará conveniente respetarle el nombre que seleccionó y enviarle el archivo tal cual lo subió a la aplicación.

 

Cambiar el nombre del archivo


Este caso nos puede ser útil cuando necesitemos unificar bajo algún criterio, ordenar o bien clasificar los archivos. Por ejemplo puede resultar práctico asociar los archivos adjuntos a un determinado registro, con un mismo prefijo y luego un número de secuencia. Los criterios a tener en cuenta dependerán de nuestras necesidades y forma de organizar los archivos


No nos tenemos que olvidar que estamos cambiando el nombre del archivo del usuario, por lo tanto esta solución deberíamos tomarla cuando no nos interesa mantener el nombre.

 

$archivo = $_FILES['archivo']['tmp_name']];
$numero = ObtenerProximaSecuencia(); // devuelve el número de secuencia
$nombre_nuevo = "imagen_".$numero . ".jpg"; //solo sube en formato JPG para simplificar el ejemplo                                  
if (move_uploaded_file($archivo, $nombre_nuevo ))
    echo "archivo subido correctamente";
else
    echo "ERROR al subir el arvhivo.";

 

Seguramente se te ocurren otras formas de procesar los archivos, podés contarnos tu solución.

Comentarios
Añadir nuevo Buscar RSS
Escribir comentario
Nombre:
Email:
 
Website:
Título:
 
Por favor introduce el código anti-spam que puedes leer en la imagen.

3.26 Copyright (C) 2008 Compojoom.com / Copyright (C) 2007 Alain Georgette / Copyright (C) 2006 Frantisek Hliva. All rights reserved."

 

Menú Principal

Ingreso de Usuarios



Actualidad

Encuesta

¿Cuál es tu lenguaje de programación favorito?
 
Copyright © 2012 Taller de Lenguajes. Todos los derechos reservados.
Joomla! es software libre publicado bajo la licencia GNU/GPL.