Autor Zpráva
mahdypetr
Profil
Ahoj, hledám radu

Stahuji soubor ze serveru pomocí:

header("Content-Type:application/pdf");
header("Content-Disposition:attachment; filename='dokument.pdf'");
readfile('soubiory/soubor.pdf');
exit();

Hlavičky jsou nastaven:
header("Expires: 0" ); 
header("Last-Modified: " . gmdate( "D, d M Y H:i:s" ) . "GMT" ); 
header("Cache-Control: no-cache,no-store,max-age=0,must-revalidate" );
header("Pragma: public" );


Soubor se stáhne a uloží do PC, ale nejde otevřít. Proč?
díky
Keeehi
Profil
mahdypetr:
Sežeň si nějaký binární editor a podívej se jak ten soubor vypadá uvnitř. Jestli se na začátku nebo konci pár bajtů nepřebývá. Tedy může něco i chybět, ale řekl bych, že spíš bude něco přebývat. Porovnej to oproti tomu souboru na serveru.
Bubák
Profil
Na prohlížení binárních souborů nemusí být nutně editor, stačí prohlížeč (binárních souborů), třebas PSPad. Na rychlé porovnaní binárních souborů jde použít třebas i Total Commander (Soubor, Porovnat podle obsahu, zatrhnou zatržítko "Binární").
Keeehi
Profil
Bubák:
A PSPad není snad editor? Ale vím co máš na mysli a já měl to samé. Kdyby měl linux, poradil bych třeba hexdump který je snad všude. Ovšem předpokládal jsem, že má windows a bál se, že na to použije třeba notepad.
Bubák
Profil
Keeehi:
A PSPad není snad editor?
Na binární soubory je to nouzovka. Uznávám, že jsem se nevyjádřil přesně a dopustil jsem se velkého zjednodušení.
mahdypetr
Profil
Děkuji, to vyzkouším. A kdybychom uvažovali, že se do souboru něco připíše. V čem bych měl hledat toho zakopaného psa? Před uložením souboru pdf nic nevypisuji, pouze pracuji s databází a některými proměnými
juriad
Profil
mahdypetr:
Třeba můžeš mít na začátku souboru BOM, nebo je tam nějaká mezera v nějakém includnutém souboru. Nějaká taková blbost.
mahdypetr
Profil
Tak jsem si otevřel soubor v PSPadu a toto na mě vykouklo

Warning: readfile(soubory/dokument.pdf): failed to open stream: No such file or directory in /www/localhost/test/index.php on line 34

Chyb byla ve špatném názvu souboru, který tam vlastně nebyl

Vaše odpověď


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: