Autor Zpráva
khubajsn
Profil *
Zdravím.
Můj skript je jednoduchý - předáte mu identifikátor (číslo souboru), a pokud odsouhlasíte zobrazené podmínky a licenci (1. krok), bude prohlížeči vrácen soubor (krok 2.). Teď je ale problém, že to nemůžu udělat přes Location, protože některé soubory jsou i obrázky takže by uživatel v adrese viděl přímý odkaz na něj. Takže potřebuju vrátit hlavičku tuším nějak Content-Type: File Transfer a pak pomocí file_get_contents("../file".intval($_GET["id"])) zaslat obsah souboru. Mám to správně?
Str4wberry
Profil
http://php.net/manual/en/function.readfile.php#function.readfile.examples

Místo readfile můžeš použít echo file_get_contents().
Joker
Profil
khubajsn:
Jestli jsem to dobře pochopil, dotaz je jakou HTTP hlavičku použít, aby se vyvolalo tažení souboru na disk?
Myslím, že application/octet-stream, ale jde snad použít application/x-cokoliv-co-prohlížeč-nezná
Já myslím dávám application/x-force-download

Doplním, že file_get_contents má jednu nevýhodu: soubor načítá do řetězce (neboli do paměti), takže s většími soubory se může stát, že dojde paměť.
Doporučoval bych raději readfile() nebo fpassthru()

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: