Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

fpdf e nome del file pdf

216 views
Skip to first unread message

diesel.cu.mi.it

unread,
Sep 2, 2009, 8:20:41 AM9/2/09
to
Uso FPDF.
Richiamo un file php fatto cosᅵ:

<?php
require_once '../_lib/fpdf/fpdf.php';
$pdf=new fpdf();
$pdf->AddPage();
$pdf->SetFont('Times','B',12);
$pdf->Cell(0,6,'Hello world!',0,1);
$pdf->Output();
?>

il browser apre in automatico Acrobat Reader e ci carica un file che di
chiama "Doc-nnn.pdf" dove "nnn" ᅵ un numero che cresce progressivamente.
Come faccio a dire io al browser quale sia il nome da assegnare al
documento?

Se la soluzione fosse di creare il file su filesystem del server:
ricordo di aver visto qualche tempo fa uno script di php (5/10 righe)
che cancellava i file presenti in una directory con data di modifica piᅵ
vecchia di un ora. Sapete come si puᅵ fare?

Grazie
Gabriele

Redwiz

unread,
Sep 2, 2009, 8:55:55 AM9/2/09
to
Il Wed, 02 Sep 2009 14:20:41 +0200, diesel.cu.mi.it ha scritto:


>
> Se la soluzione fosse di creare il file su filesystem del server:
> ricordo di aver visto qualche tempo fa uno script di php (5/10 righe)

> che cancellava i file presenti in una directory con data di modifica pi�
> vecchia di un ora. Sapete come si pu� fare?


inquesto ordine:

opendir + readdir + stat + unlink + closedir

michelangelo giacomelli

unread,
Sep 2, 2009, 9:15:01 AM9/2/09
to
diesel.cu.mi.it ha scritto:
non ho capito bene la domanda ma se va a leggere la pagina di manuale
relativa al metodo output leggi:
string Output([string name, string dest])
dove name e dest sono opzionali e name rappresenta il nome del fili
quindi direi:
$pdf->Output("mionome.pdf");
per quanto riguarda la pulitura della directory e individuare i file piᅵ
vecchi di una settimana il modo piᅵ semplice ᅵ mettere il time stamp
nella forma AnnoMeseGiorno e considerare i numeri come fossero interi...

$d = dir("tua_directory");
$oggi = date("Ymd", time());
while (false !== ($entry = $d->read()))
{
$data_file = date ("Ymd", filemtime($entry));
echo $oggi - $data_file ."\n";
if (($oggi - $data_file) > 7)
{
// il file ᅵ maggiore di una settimana lo rimuovo
unlink($entry);
}
}
$d->close();

soluzioni migliori?

diesel.cu.mi.it

unread,
Sep 2, 2009, 10:32:01 AM9/2/09
to
michelangelo giacomelli ha scritto:

> non ho capito bene la domanda ma se va a leggere la pagina di manuale
> relativa al metodo output leggi:
> string Output([string name, string dest])
> dove name e dest sono opzionali e name rappresenta il nome del fili
> quindi direi:
> $pdf->Output("mionome.pdf");

Ok. Cosᅵ scrive un file su disco. Probabilmente senza il nome, fpdf
invia una pagina con gli header opportuni ma (ovviamente) non contiene
il nome del file... perchᅵ non c'ᅵ nessun file.

> per quanto riguarda la pulitura della directory e individuare i file piᅵ
> vecchi di una settimana il modo piᅵ semplice ᅵ mettere il time stamp
> nella forma AnnoMeseGiorno e considerare i numeri come fossero interi...
>
> $d = dir("tua_directory");
> $oggi = date("Ymd", time());
> while (false !== ($entry = $d->read()))
> {
> $data_file = date ("Ymd", filemtime($entry));
> echo $oggi - $data_file ."\n";
> if (($oggi - $data_file) > 7)
> {
> // il file ᅵ maggiore di una settimana lo rimuovo
> unlink($entry);
> }
> }
> $d->close();

Era proprio quello che cercavo. Ovviamente qui ragioni a giorni. Se
volessi ragionare in ore, dovrei solo modificare il formato in "date".

> soluzioni migliori?
Grazie

michelangelo giacomelli

unread,
Sep 2, 2009, 11:50:07 AM9/2/09
to
> Era proprio quello che cercavo. Ovviamente qui ragioni a giorni. Se
> volessi ragionare in ore, dovrei solo modificare il formato in "date".
>
>> soluzioni migliori?
> Grazie
ci sono tanti modi guarda sul manuale del php la funzione stat hai sia
mtime che ᅵ il tempo di ultima modifica che quello di ultimo accesso
(atime) il formato ᅵ in timestamp unix ma esistono diverse funzioni per
convertirlo in formati leggibili.

ValeRyo Saeba

unread,
Sep 3, 2009, 6:37:36 AM9/3/09
to
"diesel.cu.mi.it" <in...@ossolainformatica.com> ha scritto nel messaggio
news:h7lnuq$ral$1...@tdi.cu.mi.it
> Uso FPDF.
> Richiamo un file php fatto cos�:

>
> <?php
> require_once '../_lib/fpdf/fpdf.php';
> $pdf=new fpdf();
> $pdf->AddPage();
> $pdf->SetFont('Times','B',12);
> $pdf->Cell(0,6,'Hello world!',0,1);
> $pdf->Output();
>>
>
> il browser apre in automatico Acrobat Reader e ci carica un file che
> di chiama "Doc-nnn.pdf" dove "nnn" � un numero che cresce

> progressivamente. Come faccio a dire io al browser quale sia il nome
> da assegnare al documento?

(a memoria, da verificare):

header('Content-Type: application/pdf');
header('Content-Disposition: inline; filename="pippo.pdf"');

e poi l'output.

Con la disposition 'attach' (o attachment?) forzi il download.


--
ValeRyo
CBR600F "Cerbero" - http://www.slimmit.com/go.asp?6YT
GamerTag: http://card.mygamercard.net/IT/nxe/ValeRyo76.png


0 new messages