[Php-it] salvataggio/apertura pdf
marco
gmpml at empire-web.it
Mon Apr 10 18:28:29 CEST 2006
>>> Marco wrote:
>>> ciao a tutti, creo un pdf con fpdf e obbligo il browser ad aprire la
>>> finestra "apri/salva/annulla" invece di aprire direttamente il file.
>>> ok, ma mentre "salva" funzia cliccando "apri" acrobat (6.0 standard)
>>> parte
>>> ma mi dice "Errore durante l'apertura del documento. Impossibile trovare
>>> questo file."
>> Cimoli Alessandro ha scritto:
>> Per caso usi le sessioni nella pagina?
>> E quindi? Nella pagina in cui fai fare il download (salva/apri) di un pdf
>> non devi usare le sessioni? Oppure c'è un altro metodo?
> From: "Giovanni Battista Lenoci" <gianiaz at gianiaz.net>
> devi usare le funzioni di output buffering
ciao, scusami, magari ne so poco sull'output buffering: io faccio cosi'
all'incirca:
@include_once "_inc/config.php"; // session start e check login
ob_start();
@define("FPDF_FONTPATH",$rootfile."/_pdf/font/");
@include_once $rootfile."/_pdf/fpdf.php";
class PDF extends FPDF.......// costruzione del pdf
$filedir=tempnam($dir,"_tmp");
$filename=basename($filedir);
$pdf->Output($filedir);
@rename($filedir,$filedir.".pdf");
$filename.=".pdf";
$filedir.=".pdf";
header("Cache-Control: no-store, no-cache, must-revalidate");
header("Cache-Control: post-check=0, pre-check=0", false);
header("Pragma: no-cache");
header('Pragma: public');
header('Expires: 0');
header("Last-Modified: ".gmdate("D, d M Y H:i:s")." GMT");
header("Content-Length: ".(string)(filesize($filedir)));
if
(preg_match('#Opera(/| )([0-9].[0-9]{1,2})#',getenv('HTTP_USER_AGENT')) or
preg_match('#MSIE
([0-9].[0-9]{1,2})#',getenv('HTTP_USER_AGENT'))) {
header("Content-Type: application/pdf");
} else {
header("Content-Type: application/pdf");
}
header("Content-Type: application/force-download");
header("Content-Type: application/download");
header("Content-Type: application/save");
header("Content-Disposition: attachment;
filename=DbParlamento2006__".$pl_nome."_".$pl_cognome.".pdf");
$fp=@readfile($filedir);
@sleep(3); // altrimenti talvolta non fa in tempo a creare il file
if(!@fpassthru($fp)){
echo 'Errore: file non creato! <a href="#"
onclick="history.go(-1)">Riprovare cliccando qui</a>, grazie.'; exit(); }
fclose($fp);
ob_end_flush();
exit();
è un casino? consigli?
forse è $pdf->Output($filedir); che manda l'output?
grazie, ciao
--
marco
gggmmmppp at interfree.it
More information about the Php-it
mailing list