Comunidad de diseño web y desarrollo en internet online

Problema menos al subir archivos con FileReference

Citar            
MensajeEscrito el 09 Sep 2007 10:09 am
¡Hola, muy buenas! He seguido el tutorial para subir archivos con FileReference, y es una maravilla :lol: . Funciona todo perfectamente, excepto un pequeño detalle.

Principalmente, utilizo esta aplicación para subir archivos al servidor, por lo que es de mucha ayuda que la lista se actualice con los archivos ya subidos... el problema es que sólo lo hace en Firefox. Ni Opera ni Internet explorer lo hacen bien, sino a medias; cuando entro por primera vez en la página, con la caché de ambos exploradores limpia, la lista carga perfectamente, pero en cuanto subo un archivo, la lista se "refresca", pero sigue mostrando los mismos archivos (que en el caso de que no haya nada, muestra eso: nada). El caso es que los archivos sí se quedan subidos en el servidor correctamente.

Buscando las posibles causas, ha resultado ser la más obvia: el código genera un archivo "xml" llamado "lista.php", que el navegador almacena en la caché. El problema es que, una vez lo almacena, no lo renueva cada vez que se sube un archivo (imagino que porque la diferencia entre la "lista.php" antes de subir un archivo, y despues, es tan pequeña, de apenas unos bytes, que el navegador interpreta que es el mismo archivo, y por lo tanto usa el de la caché). Sé que ese es el problema, porque he borrado manualmente sólo el archivo "lista.php" de los archivos temporales, tanto de opera como de internet explorer, y en ese momento sí que actualiza bien el datagrid.

El caso es que he intentado modificar el nombre del archivo, cada vez que se hace el "makelist", de forma que éste siempre sea distinto y siempre se cargue bien, de la siguiente forma:

list_xml.load(path+"/lista.php"); -> (esta es la línea donde lee el lista.php del servidor). Le he añadido la extensión que se utiliza para burlar la caché en html: ?id=random(1000), quedando el código así:

list_xml.load(path+"/lista.php?id=random(1000)"); -> todo sigue funcionando corréctamente, y también el navegador sigue sin actualizar corréctamente la lista de archivos (el datagrid).

Mi pregunta es: ¿cómo puedo hacer que el nombre cambie cada vez que genera la lista.php (que en realidad es un xml)? He dado por hecho que el nombre, lo coge del "lista.php", de ahí que haya intentado cambiar ese nombre de forma aleatoria.

También he probado a hacer esto: list_xml.load(path+"/lista.php"+(random(1000))); con el problema de que, obviamente, no encuentra el archivo en el servidor, por lo que entiendo que el nombre para el xml que guarda el navegador, se genera en otra parte del código. El problema, es que no se cual es :crap: .

Espero vuestra ayuda, y de paso que le sirva a quienes les pase lo mismo. ¡Un saludo! ^^

Por bmrpeal

2 de clabLevel



 

España

opera
Citar            
MensajeEscrito el 09 Sep 2007 03:34 pm
Tú colocaste:

Código :

list_xml.load(path+"/lista.php?id=random(1000)");

Debería ser:

Código :

list_xml.load(path+"/lista.php?id=" + random(1000));


La función "random" no debe estar dentro de las comillas porque lo asumirá como un literal y no como una función, revisa si está así en tu código y, de estar así cámbialo.

Por The Fricky!

Presidente

6168 de clabLevel

3 tutoriales
8 articulos

Genero:Masculino   Bastard Operators From Hell Héroes

Piccola Venezia...

firefox
Citar            
MensajeEscrito el 09 Sep 2007 04:02 pm
¡Perrfecto Herr C. Von Frick! ¡Muchísimas gracias! Efectivamente, era lo que tú decías. Ahora funciona perfectamente en todos los navegadores.

Creo que es un pequeño detalle, el del ramdom, que debería estar implementado en el tutorial, que ya de por sí funciona perfecto, pero con este sería ya insuperable. Tmeister, toma nota por favor. Es una modificación super simple, pero que a lo mejor está dando dolores de cabeza a más de uno.

¡Un saludo, y muchas gracias de nuevo! ;-)

Por bmrpeal

2 de clabLevel



 

España

opera
Citar            
MensajeEscrito el 13 Sep 2007 02:20 am
¿Podrias mostrar ese tutorial que leiste? :D

Por JaLeRu

Claber

1913 de clabLevel

7 tutoriales

Genero:Masculino  

Existo

firefox
Citar            
MensajeEscrito el 13 Sep 2007 02:41 am
Creo que se refiere a éste

Por The Fricky!

Presidente

6168 de clabLevel

3 tutoriales
8 articulos

Genero:Masculino   Bastard Operators From Hell Héroes

Piccola Venezia...

firefox
Citar            
MensajeEscrito el 08 Ago 2009 05:25 pm
Estoy en algo parecido. Quiero que Flash no lea directamente el XML, sino que lo haga mediante un PHP con un random, por el mismo motivo de este hilo. Pero no se PHP, así que hice un PHP de la siguiente manera:

Código :

<?php
$archivo = '../conciertos.xml';
$archivo_XML = file_get_contents($archivo);
echo $archivo_XML;
?>


Y funciona... ¡pero solo en uno de cada tres intentos! No me sirve... por favor, no creo que sea difícil para quien sabe de esto.

Antes de terminar de escribir esto, encontré el mismo código en otro tema http://foros.cristalab.com/como-descargar-con-php-un-archivo-xml-por-favor-ayuda-t37640/ (¡me sorprendió!). Pero repito... anda un tercio de las veces.

Por Mario Mey

40 de clabLevel



 

Castelar, Argentina

firefox
Citar            
MensajeEscrito el 08 Ago 2009 08:40 pm
Quise decir que al hacerle click al botón que carga el XML, funciona en uno de cada tres intentos. En los otros, vuelve un "undefined". Pero cuando funciona, no tiene problemas de caché. Es decir, solucionamos un problemita y entramos en otro... ¡como siempre!

Gracias, muchachos/as.

Por Mario Mey

40 de clabLevel



 

Castelar, Argentina

firefox

 

Cristalab BabyBlue v4 + V4 © 2011 Cristalab
Powered by ClabEngines v4, HTML5, love and ponies.