Com utilitzar PHP per forçar una descàrrega de fitxers

Quan penses en això, els navegadors web són gestos increïbles de programació complexa. Són eines que formen part de la nostra vida quotidiana: usades per a tot, des de comprovar l'estat dels amics i familiars, comunicar-se amb aquestes persones, fer compres, veure vídeos, cuidar-nos de la nostra vida financera i tant més. Tan freqüent com els navegadors són a les nostres vides, la realitat és que la majoria de la gent no aprecia la utilitat que realment són.

Darrere les càmeres

Una cosa que fan els navegadors darrere d'escena és intentar fer que tots els clics que una persona faci durant una sessió de navegació realment facin alguna cosa. Això vol dir que es poden obrir més i més tipus de fitxers per visualitzar-los directament als navegadors web.

La majoria de les vegades, això és bo, ja que pot ser molt frustrant fer clic en un enllaç a un document que voleu llegir i, després, haver d'esperar que es descarregui i, finalment, obriu-lo a l'ordinador. Aquesta frustració arriba al següent nivell quan espereu aquesta baixada, només per descobrir que no teniu el programa adequat per obrir el document. En aquests dies, que poques vegades ocorre perquè els navegadors fan, de fet, mostreu el document directament en línia. Per exemple, els fitxers PDF no es baixen de manera predeterminada. En lloc d'això, es mostren directament al navegador web similar a com es visualitzaria una pàgina web.

Què passa si teniu un fitxer que voleu que la gent descarregui en comptes de veure-la directament al navegador web?

Si es tracta d'un fitxer HTML o un PDF , no podeu publicar un enllaç a aquest document perquè (com acabem de cobrir), un navegador web obre aquests documents automàticament i els mostra en línia. Per fer que aquests fitxers es baixin a l'ordinador d'una persona, en lloc d'això, heu de fer alguns trucs utilitzant PHP.

PHP us permet canviar les capçaleres HTTP dels fitxers que escriviu.

Aquest procés ho fa perquè pugui forçar que es descarregui un fitxer que normalment el navegador carregui a la mateixa finestra. Això és perfecte per a fitxers com PDF, fitxers de documents, imatges i vídeos que voleu que els vostres clients es baixin en lloc de consumir-los en línia directament des del navegador.

Necessiteu PHP al servidor web on s'allotjaran els vostres fitxers, un fitxer que es baixarà i el tipus MIME del fitxer en qüestió.

Com fer-ho

  1. Carregueu el fitxer que voleu que estigui disponible per descarregar al vostre servidor web. Per exemple, diuen que teniu un fitxer PDF que voleu que la gent descarregui quan feu clic a un enllaç. Primer penjarà aquest fitxer a l'entorn d'allotjament del vostre lloc web.
    huge_document.pdf
  2. Editeu un fitxer PHP nou al vostre editor web: per facilitar-vos l'ús, us recomanem que us indiquem amb el mateix nom que el fitxer baixat, només amb l'extensió .php. Per exemple:
    huge_document.php
  3. Obriu el bloc PHP del document:
  4. A la següent línia, configureu el encapçalament HTTP:
    encapçalament ("Content-disposition: attachment; filename = huge_document.pdf");
  5. A continuació, estableixi el tipus MIME del fitxer:
    capçalera ("Tipus de contingut: aplicació / pdf");
  6. Assenyaleu el fitxer que voleu descarregar:
    readfile ("large_document.pdf");
  7. A continuació, tanqueu el bloc PHP i deseu el fitxer:
    ?>
  1. El vostre fitxer PHP hauria de ser així:
    encapçalament ("Content-disposition: attachment; filename = huge_document.pdf");
    capçalera ("Tipus de contingut: aplicació / pdf");
    readfile ("large_document.pdf");
    ?>
  2. Enllaç al fitxer PHP com a enllaç de baixada des d'una pàgina web. Per exemple:
    Baixeu el meu gran document (PDF)

No hi hauria d' haver espais ni retorns de carro en cap part del fitxer (excepte després d'un punt i coma). Les línies en blanc provocaran que PHP s'estableixi per defecte al tipus MIME text / html i el vostre fitxer no es baixarà.