Foros del Web » Programando para Internet » PHP »

No cachear descarga pdf

Estas en el tema de No cachear descarga pdf en el foro de PHP en Foros del Web. Hola estaba tratando de hacerlo y creo que no funciona. Seguramente una pavada pero ojalá sirva para que lo mejoren y me ayuden, hasta acá ...
  #1 (permalink)  
Antiguo 04/09/2007, 14:12
 
Fecha de Ingreso: mayo-2004
Mensajes: 903
Antigüedad: 19 años, 11 meses
Puntos: 4
No cachear descarga pdf

Hola estaba tratando de hacerlo y creo que no funciona. Seguramente una pavada pero ojalá sirva para que lo mejoren y me ayuden, hasta acá no va bien,

Desde <a href="ver_file.php"><u>Lista
de Precios</u></a> llamás al archivo ver_file.php

Código PHP:
// Cabeceras de NO CACHE
header"Expires: Mon, 20 Dec 1998 01:00:00 GMT" );
header"Last-Modified: " gmdate("D, d M Y H:i:s") . " GMT" );
header"Cache-Control: no-cache, must-revalidate" );
header"Pragma: no-cache" );
header ("Location: tuarchivo.pdf"); 
Lo que ademas no puedo hacer es forzar a que3 me pida abrir o guardar en vez de abrirlo directamente.


Última edición por mvlsistemas; 04/09/2007 a las 14:22
  #2 (permalink)  
Antiguo 04/09/2007, 18:33
 
Fecha de Ingreso: mayo-2004
Mensajes: 903
Antigüedad: 19 años, 11 meses
Puntos: 4
Re: No cachear descarga pdf

Gracias, forcé la edscarga así llamando al archivo descargar.php desde
Código:
descargar.php?f=tuarchivo.pdf
Código PHP:
<?php
      $extensiones 
= array("pdf""xls");
      
$f $_GET["f"];
      if(
strpos($f,"/listas")!==false){
            die(
"No puedes navegar por otros directorios");
      }
      
$ftmp explode(".",$f);
      
$fExt strtolower($ftmp[count($ftmp)-1]);

      if(!
in_array($fExt,$extensiones)){
            die(
"<b>ERROR!</b> no es posible descargar archivos con la extensión $fExt");
      }

      
header("Content-type: application/octet-stream");
      
header("Content-Disposition: attachment; filename=\"$f\"\n");
      
$fp=fopen("$f""r");
      
fpassthru($fp);
?>
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 06:15.