網(wǎng)站建設(shè)中如何用PHP實現(xiàn)強制文件下載

2022-05-23    分類: 網(wǎng)站建設(shè)


瀏覽器在后臺所做的一件事,就是嘗試讓一個人在瀏覽會話期間,所做的所有點擊都能做一些事情。這意味著可以打開越來越多的文件類型,以便在Web瀏覽器中直接查看。大多數(shù)情況下,這是一件好事,因為點擊您想要閱讀的文檔的鏈接,然后不得不等待它下載并最終在您的計算機(jī)上打開,這可能是非常令人沮喪的。當(dāng)您等待此下載時,當(dāng)您發(fā)現(xiàn)您沒有正確的程序來打開文檔時,這種挫折感達(dá)到了更高的水平?,F(xiàn)在,這種情況很少發(fā)生,因為瀏覽器確實直接以內(nèi)聯(lián)方式顯示文檔。例如,PDF文件在默認(rèn)情況下不會下載。相反,它們直接顯示在Web瀏覽器中,類似于網(wǎng)頁的顯示方式。
如果您希望用戶下載文件而不是直接在Web瀏覽器中查看該文件,該怎么辦?如果是HTML文件或PDF文件,您不能僅僅發(fā)布到該文檔的鏈接,因為(正如我們剛才介紹的那樣)Web瀏覽器會自動打開這些文檔并以內(nèi)聯(lián)方式顯示它們。要將這些文件下載到一個人的計算機(jī)上,您需要使用PHP進(jìn)行一些處理。
PHP允許您更改正在編寫的文件的HTTP標(biāo)頭。此過程使您可以強制下載通常瀏覽器將在同一窗口中加載的文件。這非常適合您希望客戶下載而不是直接從瀏覽器在線使用的PDF、文檔文件、圖像和視頻等文件。您需要在存放文件的Web服務(wù)器上使用PHP,要下載的文件以及相關(guān)文件的MIME類型。本文的目的就是告訴你在網(wǎng)站建設(shè)開發(fā)過程中,如何用PHP實現(xiàn)強制文件下載。
1、如何做到這一點
將要供下載的文件上載到Web服務(wù)器。例如,假設(shè)您有一個PDF文件,您希望用戶在單擊某個鏈接時下載該文件。您將首先將該文件上載到您的網(wǎng)站的托管環(huán)境中。
huge_document.pdf
2、在您的Web編輯器中編輯一個新的PHP文件-為便于使用,我們建議將其命名為與下載的文件同名,但擴(kuò)展名為.php,例如:
huge_document.php
3、在文檔中打開PHP塊:
<?php
4、在下一行中,設(shè)置HTTP標(biāo)頭:
header("Content-disposition: attachment; filename=huge_document.pdf");
5、然后設(shè)置文件的MIME類型:
header("Content-type: application/pdf");
6、指向要下載的文件:
readfile("huge_document.pdf");
7、然后關(guān)閉PHP塊并保存文件:
?>

8、PHP文件應(yīng)如下所示:

<?php
header("Content-disposition: attachment; filename=huge_document.pdf");
header("Content-type: application/pdf"); readfile("huge_document.pdf");
?>
9、鏈接到您的PHP文件作為下載鏈接從一個網(wǎng)頁。例如:
<a href="huge_document.php">Download my huge document (PDF)</a>
10、文件中的任何位置都不應(yīng)有空格或回車符(除分號之后)??招袑?dǎo)致PHP默認(rèn)為MIME類型 text/html 你的文件也不會下載。

新聞名稱:網(wǎng)站建設(shè)中如何用PHP實現(xiàn)強制文件下載
網(wǎng)站路徑:http://www.muchs.cn/news27/157177.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站改版、網(wǎng)站制作、網(wǎng)站維護(hù)定制開發(fā)、關(guān)鍵詞優(yōu)化ChatGPT

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

搜索引擎優(yōu)化