Autor Zpráva
Lukáš Přibyl
Profil *
Chci vytvořit export dat z databáze a potřebuji, aby se výsledek uložil do souboru (nic těžkého), ale hlavně aby se neukládal na server, ale uživatli jen vyskočilo klasické okno, jestli chce soubor otevřít či stáhnout.
Mastodont
Profil
http://w-shadow.com/blog/2007/08/12/how-to-force-file-download-with-php/
http://apptools.com/phptools/force-download.php
AM_
Profil
Pokud se nemá ukládat do souboru, ale stáhnout, tak data ani do souboru neukládej ale posílej je rovnou na výstup (echo).
Důležité je dát na začátek
header('content-type: application/octet-stream');
aby prohlížeč k souboru přistupoval jako k datovému a ne jako něčemu, co se pokusí sám zobrazit.
donny
Profil *
Doporučuju ještě přidat na začátek za ten první header() (za předpokladu, že proměnná $fileData obsahuje data souboru):

header("Content-Transfer-Encoding: binary");
header("Content-Length: " . strlen($fileData) ."; "); 
AM_
Profil
donny
content-length by se mělo generovat serverem automaticky, proto je lepší to vynechat, když tam pak člověk udělá nějakou chybku, zbytečně tím vyřadí věc, která funguje sama od sebe.

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

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

0