Foros del Web » Programando para Internet » PHP »

[SOLUCIONADO] vaciar caché

Estas en el tema de vaciar caché en el foro de PHP en Foros del Web. Hola de nuevo, ayer mismo solucioné una duda pero me ha generado otra: Necesito borrar la caché, porque al subir un archivo con el mismo ...
  #1 (permalink)  
Antiguo 07/05/2013, 02:01
 
Fecha de Ingreso: noviembre-2011
Mensajes: 117
Antigüedad: 12 años, 5 meses
Puntos: 2
vaciar caché

Hola de nuevo, ayer mismo solucioné una duda pero me ha generado otra:

Necesito borrar la caché, porque al subir un archivo con el mismo nombre de otro que ya existe a un servidor se sustituye pero me sigue mostrando el anterior...

He visto unos headers pero supongo que los tengo que poner en la página donde los muestro y eso no es posible porque para mostrarlos lo único que hago es acceder a la URL con 'window.open' en el 'onclick' de un botón.

¿qué puedo hacer para que me muestre los nuevos que subo?
  #2 (permalink)  
Antiguo 07/05/2013, 02:13
pr0
 
Fecha de Ingreso: marzo-2004
Mensajes: 687
Antigüedad: 20 años
Puntos: 28
Respuesta: vaciar caché

¿Como?

No entiendo eso de que no puedes poner headers porque accedes con window.open... te explicas? O mejor por que no pones el codigo de la página conflictiva?
  #3 (permalink)  
Antiguo 07/05/2013, 02:31
 
Fecha de Ingreso: noviembre-2011
Mensajes: 117
Antigüedad: 12 años, 5 meses
Puntos: 2
Respuesta: vaciar caché

hola y gracias por responder, a ver no es que no pueda ponerlos, la cuestión es que no tengo esa página concreta a la que pueda llamar conflictiva, y de ser así no se cuál es, mira:

1º)tengo un formulario multipart/form-data y una tabla en la que listo los archivos subidos en 'verdatoscuentas.php'.

2º)subo un .pdf llamado 'ejemplo.pdf', para ello llamo por POST a través del formulario a 'uploadFile.php', me salta alert de que ha subido bien (es cierto, ha sustituido en antiguo 'ejemplo.pdf' que ya había subido de antes) y vuelve a 'verdatoscuentas.php'.

3º) ahora voy a la tabla y hago click en el archivo que acabo de subir 'ejemplo.php', en esa fila de la tabla tengo un 'onclick' que hace:

Código HTML:
<span id="spanFiles" title="Visualizar" class="link_" style="font-size:11px" onclick="window.open('documentos/proyecto_1588/inventario/ejemplo.pdf','winfile','scrollbars=yes,width=1200,height=700')">ejemplo.pdf</span> 
Entonces se abre el nuevo popup y visualizo ese archivo desde el popup que acabo de abrir con 'window.open' pero resulta que se visualiza el anterior 'ejemplo.pdf' no el que acabo de subir (por la caché), por eso pregunto, ¿dónde pongo los headers, si el pop up que lo muestra lo acabo de crear? por lo que he visto se pone en la página en la que muestra los archivos pero yo esa no la tengo porque es la que comentaba que abro dinámicamente con 'window.open'.

He puesto esos headers en verdatoscuentas.php y en uploadFile.php peor no funciona.

Lo siento si no me expliqué bien, justo ayer supe que los manejadores de archivos funcionan con caché y no sé cómo hacer para solucionar mi problema.
  #4 (permalink)  
Antiguo 07/05/2013, 05:46
 
Fecha de Ingreso: noviembre-2011
Mensajes: 117
Antigüedad: 12 años, 5 meses
Puntos: 2
Respuesta: vaciar caché

Bueno al fin he conseguido encontrar la solución, en mi caso tengo todos los documentos en el mismo directorio (luego ya se dividen en subdirectorios) entonces lo que he hecho es poner un archivo .htaccess en el directorio 'documentos', el .htaccess tiene lo siguiente:

addType "application/pdf" .pdf
<FilesMatch "\.(pdf)$">
Header unset Cache-Control
Header unset Expires
Header unset Last-Modified
FileETag None
Header unset Pragma
</FilesMatch>

éste solo vale para los archivos .PDF pero se pueden añadir los que se necesiten, yo he añadido las siguientes extensiones:
<FilesMatch "\.(pdf|txt|docx|xls|xlsx|csv)$">

Lo que hace es decirle que los archivos de ese tipo no se guarden en caché, de este modo siempre visualizaré los actuales.

espero que si alguien tiene mi mismo problema le sirva esto.

Última edición por eamanesims; 07/05/2013 a las 05:54

Etiquetas: Ninguno
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 20:40.