Re: Stahovani pdf misto otevirani v okne

From: pp21@mail.cz
Date: 23. 03. 2002, 11:23 CET


> OK. Je to presne ako hovoris, mae culpa (ci ako sa to hovori),
> daj mi este jednu sancu:
>
> $pdf_file="nejaky_subor.pdf";
> Header("Content-Type: application/octet-stream");
> Header("Content-Disposition: attachment; filename=$pdf_file");
>
> Toto mi funguje korektne, neotvara Reader a pri save dialogu ponukne
> spravne meno aj typ suboru. Funguje ?

NE :( Teda *trochu* ano, ale rozhodne ne uplne.
Stravil jsem s experimentama cca 3 hodiny, ale bez uspechu.
Byl jsem z toho tak na****ej, ze jsem vsechny pokusy smazal,
ale vypadalo to asi takhle (pisu to z hlavy, mozna tam budou
preklepy!):

$pdf_file="nejaky_subor.pdf";
Header("Content-Length: " .  FileSize("./" . $pdf_file));
    # to aby browser vedel, kolik ma stahovat
Header("Content-Type: application/octet-stream");
Header("Content-Disposition: attachment; filename=$pdf_file");
$fp = FOpen("./" . $pdf_file, "r");
FPassThru($fp);

Pozor, za FPassThru se uz nedava FCloce() jak tu nekdo uvadel,
protoze uz neni co zavirat! Dlouho jse premyslel, proc mam
vysledne suobory o 119 bajtu vetsi, byla tam hlaska z php ;)
No a pak taky bacha na standardni timeout 30sec!

A chovani?

 - MSIE:
Nabidnul dialog, kdyz jsem dal "ulozit cil", probehlo to OK, kdyz jsem
dal "otevrit z aktualniho umisteni", vyskocil znovu tentyz dialog (!)
a po zopakovani "otevrit z aktul..." uz se to otevrelo v Readeru
(mimo, ne v okne IE).
 - Opera6:
Dilaog ulozit/otevrit. Ulozit OK, otevrit uz ne. Porad dokola tvrdil,
"Is no asociation with php files" (to neni preklep).
 - Mozilla:
"No asociation with this aplication" a dialog vybrani programu, kterym
to chci otevrit.
 - Netscape6:
Otevrel PDF ve svem okne pomoci pliginu. Zadne ptani.

Rekl bych, ze IE se chova nestandardne, protoze rozlisuje typ dat
podle pripony a ne podle deklarace v Content-Type.
Taky jsem zkousel zmenit application/octet-stream na application/pdf,
ale pak se to chovalu uplne stejne, jako kdybych linknul primo to PDF.


No a nazaver bych rekl, ze to co udela klient s obrzenym souborem
(tedy PDF) je ciste jeho veci. A ja jako server mu nemam v tomto smeru
co diktovat.
To ze klient (zejmena pak jeho obsluha) pouziva program zobrazujici
PDF jako soucast browseru je ciste jeho vec. A ze si to neumi vypnout
je pouze _jeho_ problem, at se mi to libi, nebo ne. Ja mu muzu akorat
poradit, at si to vypne, ale jestli me poslechne, to uz je opet jeho
vec.

Tim bych povazoval tenhle thread za uzavreny.
Teda pokud nekdo nezna zpusob, jak poslat klientovy PDF, tak aby mu
nabidnul dialog a opravdu to fungovalo. Tim myslim predevsim podle
standardu protokolu http.

-pp21-



This archive was generated by hypermail 2.1.2 : 23. 03. 2002, 11:25 CET