Jak používat PHP k vynucení stahování souborů

Když o tom přemýšlíte, webové prohlížeče jsou úžasné výkony složitého programování. Jsou to nástroje, které jsou součástí našeho každodenního života - používají se pro vše, od kontroly stavu přátel a rodiny, po komunikaci s těmito lidmi, při nákupu, při sledování videa, při péči o náš finanční život a tolik více. Jak převládající jsou prohlížeče v našem životě, skutečnost spočívá v tom, že většina lidí neví, jak užitečné jsou skutečně.

V zákulisí

Jedna věc, kterou prohlížeče dělají za zákulisí, je pokusit se provést všechna kliknutí, která osoba během relace prohlížení skutečně dělá. To znamená, že pro prohlížení přímo ve webových prohlížečích lze otevřít více a více typů souborů.

Většinou je to dobrá věc, protože může být velmi frustrující kliknout na odkaz na dokument, který si přejete přečíst, a pak musíte počkat na jeho stažení a nakonec otevření počítače. To frustrace dosáhne další úrovně, když počkáte na toto stahování, pouze zjistíte, že nemáte správný program k otevření dokumentu. V dnešní době se to zřídkakdy stává, protože prohlížeče skutečně zobrazují dokument přímo v řádku. Například soubory PDF se ve výchozím nastavení nezobrazují. Místo toho se zobrazují přímo ve webovém prohlížeči podobně jako by se zobrazovala webová stránka.

Co když máte soubor, který chcete stáhnout, místo toho, aby se zobrazoval přímo ve webovém prohlížeči?

Jde-li o soubor HTML nebo PDF , nemůžete pouze poslat odkaz na daný dokument, protože (jak jsme právě pokryli) webový prohlížeč tyto dokumenty automaticky otevře a zobrazí je v řádku. Chcete-li tyto soubory stáhnout do osobního počítače, potřebujete místo toho nějaké triky pomocí PHP.

PHP umožňuje změnit hlavičky HTTP souborů, které píšete.

Tento proces dělá tak, že můžete vynutit stahování souboru, který by normálně prohlížeč načítal ve stejném okně. To je ideální pro soubory, jako jsou soubory PDF, soubory dokumentů, obrázky a videa, které chcete, aby si zákazníci stáhli spíše než konzumovali online přímo z prohlížeče.

Budete potřebovat PHP na webovém serveru, kde budou vaše soubory hostovány, soubor ke stažení a typ MIME daného souboru.

Jak to udělat

  1. Nahrajte soubor, který chcete stáhnout na webový server. Řekněme například, že máte soubor PDF, který chcete stáhnout po kliknutí na odkaz. Nejdříve byste tento soubor nahrali do hostitelského prostředí vašeho webu.
    huge_document.pdf
  2. Upravte nový soubor ve vašem webovém editoru - pro snadné použití doporučujeme jej pojmenovat stejný název jako stažený soubor, pouze s příponou .php. Například:
    huge_document.php
  3. Otevřete blok PHP ve vašem dokumentu:
  4. Na dalším řádku nastavte hlavičku protokolu HTTP:
    hlavička ("obsah-dispozice: příloha; název_souboru = obrovský dokument.pdf");
  5. Poté nastavte typ MIME souboru:
    záhlaví ("Obsahový typ: aplikace / pdf");
  6. Přejděte na soubor, který chcete stáhnout:
    readfile ("huge_document.pdf");
  7. Pak zavřete blok PHP a uložte soubor:
    ?>
  1. Váš PHP soubor by měl vypadat takto:
    hlavička ("obsah-dispozice: příloha; název_souboru = obrovský dokument.pdf");
    záhlaví ("Obsahový typ: aplikace / pdf");
    readfile ("huge_document.pdf");
    ?>
  2. Odkaz na váš soubor PHP jako odkaz na stažení z webové stránky. Například:
    Stáhněte si svůj obrovský dokument (PDF)

V tomto souboru by se neměly nacházet žádné mezery nebo vozíky (s výjimkou po dvojtečce). Prázdné řádky způsobí, že PHP bude výchozí k typu MIME text / html a váš soubor se nebude stahovat.