方法一:
創(chuàng)新互聯(lián)建站是一家專業(yè)提供肥鄉(xiāng)企業(yè)網(wǎng)站建設(shè),專注與成都網(wǎng)站設(shè)計(jì)、做網(wǎng)站、H5響應(yīng)式網(wǎng)站、小程序制作等業(yè)務(wù)。10年已為肥鄉(xiāng)眾多企業(yè)、政府機(jī)構(gòu)等服務(wù)。創(chuàng)新互聯(lián)專業(yè)網(wǎng)站制作公司優(yōu)惠進(jìn)行中。
利用php中readfile函數(shù)讀取文件內(nèi)容到輸出緩沖,然后再進(jìn)行輸出,效率比較低,文件必須通過PHP進(jìn)行一次處理才能進(jìn)行輸出
方法二:
這里和方法一是一樣的,只不過采用file_get_contents函數(shù)來讀取文件并輸出
方法三:
基于Apache的mod_xsendfile擴(kuò)展,來進(jìn)行文件的輸出,文件可以不經(jīng)過php讀取到內(nèi)存,這在處理大文件[超過1G的文件]方面是一個(gè)比較可取的選擇,首先可以檢查一下apache是否安裝改擴(kuò)展:
rpm -q mod_xsendfile --檢查是否安裝該擴(kuò)展 yum install mod_xsendfile --執(zhí)行該命令安裝該擴(kuò)展 service httpd restart --安裝擴(kuò)展之后重啟服務(wù) httpd -M|grep xsendfile --檢查apache是否成功加載該擴(kuò)展安裝完該擴(kuò)展之后,如需要在配置文件中添加該選項(xiàng):
XSendFile On --開啟該選項(xiàng)后,需要重啟服務(wù)然后編輯一個(gè)php文件,測試是否能正常輸出:
header('content-disposition:p_w_upload; filename=test.zip'); header("X-Sendfile:/var/www/test.zip");注意文件的權(quán)限問題
新聞標(biāo)題:PHP中實(shí)現(xiàn)文件下載的幾種方法
文章URL:http://weahome.cn/article/pcgogd.html