Foros del Web » Programando para Internet » PHP »

Caracteres Especiales

Estas en el tema de Caracteres Especiales en el foro de PHP en Foros del Web. Saludos, Realizo una aplicación que entre otras cosas, permite subir archivos, los nombres de los archivos junto con sus extensiones son almacenados en una tabla ...
  #1 (permalink)  
Antiguo 09/03/2004, 20:21
Avatar de oswaldog  
Fecha de Ingreso: diciembre-2003
Ubicación: Lara
Mensajes: 90
Antigüedad: 20 años, 3 meses
Puntos: 0
Caracteres Especiales

Saludos,

Realizo una aplicación que entre otras cosas, permite subir archivos, los nombres de los archivos junto con sus extensiones son almacenados en una tabla de una BD, por cada usuario existe un id y una carpeta en el servidor identificada igual que el id, el problema es que en la pagina donde muestro a cada usuario sus archivos para que pueda descargarlos, el link de descarga esta compuesto de la siguiente manera:

Código PHP:
$path = "$id"."/"."$archivo"."."."$extension";
<a href= " <?php echo "$path";?> " >Descargar </a>
El problema es que sistemas operativos como windows XP, permiten casi cualquier caracter en los nombres de sus archivos, excepto (/\?*<>|), y HTML modifica todos los carecteres especiales (http://www.tejedoresdelweb.com/307/article-1836.html). Las variables $archivo y $extension, son obtenidas de la BD, pero al imprimirlas en el link de HTML, cuando presiona Descargar el path de la ubicación del archivo es alterado por las modificaciones que hace HTML con los carecteres especiales.
__________________
Gracias, Oswaldo

"Compartir tus conocimientos. Es una buena manera de ganarse la inmortalidad"
  #2 (permalink)  
Antiguo 10/03/2004, 02:04
Ex Colaborador
 
Fecha de Ingreso: junio-2002
Mensajes: 9.091
Antigüedad: 21 años, 10 meses
Puntos: 16
Hola,

La solucion es modificar el nombre del fichero cuando lo subes. Puedes usar expresiones regulares para sustituir esos caracteres "peligrosos" por nada.

Saludos.
__________________
Josemi

Aprendiz de mucho, maestro de poco.
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 18:00.