header函數實作檔下載提示儲存用法詳解
相信很多人在實現文件下載功能時會遇到這種情況,本意是點擊下載連接提示保存對話框,事情往往事與願違,例如PDF這樣的文件會直接在瀏覽器中現實文件內容,而不是提示儲存。透過下面的方法可以解決這個問題。
<?php $filename = '路径+实际文件名'; //文件的类型 header('Content-type: application/pdf'); //下载显示的名字 header('Content-Dis position : attachment; filename="保存时的文件名.pdf"'); readfile("$filename"); exit(); ?>
以下是網路上常用的方法
if (isset($link)) { Header("HTTP/1.1 303 See Other"); Header("Location: $link"); exit; }
$link就是文件的实际路径。
附服务器响应HTTP的类型ContentType大全:
".*"="application/octet-stream"
".001"="application/x-001"
".301"="application/x-301"
".323"="text/h323"
".906"="application/x-906"
".907"="drawing/907"
".a11"="application/x-a11"
".acp"="audio/x-mei-aac"
".ai"="application/postscript"
".aif"="audio/aiff"
".aifc"="audio/aiff"
".aiff"="audio/aiff"
".anv"="application/x-anv"
".asa"="text/asa"
".asf"="video/x-ms-asf"
".asp"="text/asp"
".asx"="video/x-ms-asf"
".au"="audio/basic"
".avi"="video/avi"
".awf"="application/vnd.adobe.workflow"
".biz"="text/xml"
".bmp"="application/x-bmp"
".bot"="application/x-bot"
".c4t"="application/x-c4t"
".c90"="application/x-c90"
".cal"="application/x-cals"
".cat"="application/vnd.ms-pki.seccat"
".cdf"="application/x-netcdf"
".cdr"="application/x-cdr"
".cel"="application/x-cel"
".cer"="application/x-x509-ca-cert"
".cg4"="application/x-g4"
".cgm"="application/x-cgm"
".cit"="application/x-cit"
".class"="java/*"
".cml"="text/xml"
".cmp"="application/x-cmp"
".cmx"="application/x-cmx"
".cot"="application/x-cot"
".crl"="application/pkix-crl"
".crt"="application/x-x509-ca-cert"
".csi"="application/x-csi"
".css"="text/css"
".cut"="application/x-cut"
".dbf"="application/x-dbf"
".dbm"="application/x-dbm"
".dbx"="application/x-dbx"
".dcd"="text/xml"
".dcx"="application/x-dcx"
".der"="application/x-x509-ca-cert"
".dgn"="application/x-dgn"
".dib"="application/x-dib"
".dll"="application/x-msdownload"
".doc"="application/msword"
".dot"="application/msword"
".drw"="application/x-drw"
".dtd"="text/xml"
".dwf"="Model/vnd.dwf"
".dwf"="application/x-dwf"
".dwg"="application/x-dwg"
".dxb"="application/x-dxb"
".dxf"="application/x-dxf"
".edn"="application/vnd.adobe.edn"
".emf"="application/x-emf"
".eml"="message/rfc822"
".ent"="text/xml"
".epi"="application/x-epi"
".eps"="application/x-ps"
".eps"="application/postscript"
".etd"="application/x-ebx"
".exe"="application/x-msdownload"
".fax"="image/fax"
".fdf"="application/vnd.fdf"
".fif"="application/fractals"
".fo"="text/xml"
".frm"="application/x-frm"
".g4"="application/x-g4"
".gbr"="application/x-gbr"
".gcd"="application/x-gcd"
".gif"="image/gif"
".gl2"="application/x-gl2"
".gp4"="application/x-gp4"
".hgl"="application/x-hgl"
".hmr"="application/x-hmr"
".hpg"="application/x-hpgl"
".hpl"="application/x-hpl"
".hqx"="application/mac-binhex40"
".hrf"="application/x-hrf"
".hta"="application/hta"
".htc"="text/x-component"
".htm"="text/html"
".html"="text/html"
".htt"="text/webviewhtml"
".htx"="text/html"
".icb"="application/x-icb"
".ico"="image/x -icon"
".ico"="application/x-ico"
".iff"="application/x-iff"
".ig4"="application/x-g4"
".igs"="application/x-igs"
".iii"="application/x-iphone"
".img"="application/x-img"
".ins" ="application/x-internet-signup"
".isp"="application/x-internet-signup"
".IVF"="video/x-ivf"
".java"= "java/*"
".jfif"="image/jpeg"
".jpe"="image/jpeg"
".jpe"="application/x-jpe"
" .jpeg"="image/jpeg"
".jpg"="image/jpeg"
".jpg"="application/x-jpg"
".js"="application/x- javascript"
".jsp"="text/html"
".la1"="audio/x-liquid-file"
".lar"="application/x -laplayer-reg"
".latex"="application/x-latex"
".lavs"="audio/x-liquid-secure"
".lbm"="application/x- lbm"
".lmsff"="audio/x-la-lms"
".ls"="application/x-javascript"
".ltr"="application/x-ltr"
".m1v"="視訊/x-mpeg"
".m2v"="視訊/x-mpeg"
".m3u"="音訊/mpegurl"
".m4e"= “視訊/mpeg4”
“.mac”=“application/x-mac”
“.man”=“application/x-troff-man”
“.math”=“text/xml”
".mdb"="application/msaccess"
".mdb"="application/x-mdb"
".mfp"="application/x-shockwave-flash"
"。 mht"="message/rfc822"
".mhtml"="message/rfc822"
".mi"="application/x-mi"
".mid"="音訊/mid"
".midi"="音頻/mid"
".mil"="application/x-mil"
".mml"="text/xml"
".mnd"="音頻/x-musicnet-download"
".mns"="audio/x-musicnet-stream"
".mocha"="application/x-javascript"
".moviee"= "video/ x-sgi-movie"
".mp1"="音訊/mp1"
".mp2"="音訊/mp2"
".mp2v"="視訊/mpeg"
". mp3"="音訊/mp3"
".mp4"="視訊/mpeg4"
".mpa"="視訊/x-mpg"
".mpd"="application/ vnd.ms -project"
".mpe"="video/x-mpeg"
".mpeg"="video/mpg"
".mpg"="video/mpg"
".mpga “=“音訊/rn-mpeg”
“.mpp”=“應用程式/vnd.ms-project”
“.mps”=“視訊/x-mpeg”
“. mpt”=應用程式/vnd.ms-project"
".mpv"="視訊/mpg"
".mpv2"="視訊/mpeg"
".mpw"="應用程式/ vnd.ms-project "
".mpx"="application/vnd.ms-project"
".mtx"="text/xml"
".mxp"="application/x-mmxp "
" .net"="image/pnetvue"
".nrf"="application/x-nrf"
".nws"="message/rfc822"
".odc"= "text/x- ms-odc"
".out"="application/x-out"
".p10"="application/pkcs10"
".p12"="application/x- pkcs12"
".p7b"="application/x-pkcs7-certificates"
".p7c"="application/pkcs7-mime"
".p7m"="application/pkcs7-mime"
".p7r "="application/x-pkcs7-certreqresp"
".p7s"="application/pkcs7-signature"
".pc5"="application/x-pc5"
" .pci"=" application/x-pci"
".pcl"="application/x-pcl"
".pcx"="application/x-pcx"
".pdf"=" application/pdf"
".pdf"="application/pdf"
".pdx"="application/vnd.adobe.pdx"
".pfx"="application/x-pkcs12"
".pgl "="application/x-pgl"
".pic"="application/x-pic"
".pko"="application/vnd.ms-pki.pko"
".pl" =“應用程式/x-perl”
".plg"="text/html"
".pls"="音訊/scpls"
".plt"="application/x-plt"
".png"="image/png "
".png"="application/x-png"
".pot"="application/vnd.ms-powerpoint"
".ppa"="application/vnd.ms-powerpoint"
".ppm"="application/x-ppm"
".pps"="application/vnd.ms-powerpoint"
".ppt"="application/vnd.ms-powerpoint"
".ppt"="application/x-ppt"
".pr"="application/x-pr"
".prf"="application/pics-rules"
".prn "="application/x-prn"
".prt"="application/x-prt"
".ps"="application/x-ps"
".ps"="application/後記"
".ptn"="application/x-ptn"
".pwz"="application/vnd.ms-powerpoint"
".r3t"="text/vnd.rn-realtext3d “
”.ra“=”音訊/vnd.rn-realaudio“
”.ram“=”音訊/x-pn-realaudio“
”.ras“=”應用程式/x-ras “
".rat"="application/rat-file"
".rdf"="text/xml"
".rec"="application/vnd.rn-recording"
" 。 rjt "="application/vnd.rn-realsystem-rjt"
".rlc"="application/x-rlc"
".rle"="application/x-rle"
".rm " ="application/vnd.rn-realmedia"
".rmf"="application/vnd.adobe.rmf"
".rmi"="音訊/mid"
".rmj"=" application /vnd.rn-realsystem-rmj"
".rmm"="audio/x-pn-realaudio"
".rmp"="application/vnd.rn-rn_music_package"
".rms " ="application/vnd.rn-realmedia-secure"
".rmvb"="application/vnd.rn-realmedia-vbr"
".rmx"="application/vnd.rn-realsystem-rmx "
".rnx"="application/vnd.rn-realplayer"
".rp"="image/vnd.rn-realpix"
".rpm"="audio/x-pn- realaudio -plugin"
".rsml"="application/vnd.rn-rsml"
".rt"="text/vnd.rn-realtext"
".rtf"="application/msword "
".rtf"="application/x-rtf"
".rv"="video/vnd.rn-realvideo"
".sam"="application/x-sam"
".sat"="application/x-sat"
".sdp"="application/sdp"
".sdw"="application/x-sdw"
".sit"=" application /x-stuffit"
".slb"="application/x-slb"
".sld"="application/x-sld"
".slk"="繪圖/x-slk "
".smi"="application/smil"
".smil"="application/smil"
".smk"="application/x-smk"
".snd"= "音訊/基本"
".sol"="text/plain"
".sor"="text/plain"
".spc"="application/x-pkcs7-certificates"
".spl"="application/futuresplash"
".spp"="text/xml"
".ssm"="application/streamingmedia"
".sst"="application/vnd. ms -pki.certstore"
".stl"="application/vnd.ms-pki.stl"
".stm"="text/html"
".sty"="application/x - sty"
".svg"="text/xml"
".swf"="application/x-shockwave-flash"
".tdf"="application/x-tdf"
".tg4"="application/x-tg4"
".tga"="application/x-tga"
".tif"="image/tiff"
".tif"=" application /x-tif"
".tiff"="image/tiff"
".tld"="text/xml"
".top"="繪圖/x-top"
" .torrent"="application/x-bittorrent"
".tsd"="text/xml"
".txt"="text/plain"
".uin"="application/x - icq"
".uls"="text/iuls"
".vcf"="text/x-vcard"
".vda"="application/x-vda"
" 。 vnd .visio"
".vsd"="application/x-vsd"
".vss"="application/vnd.visio"
".vst"="application/vnd.visio"
".vst"= “應用程式/x-vst”
“.vsw”=“應用程式/vnd.visio”
“.vsx”=“應用程式/vnd.visio”
“.vtx”=“應用程式/vnd.visio” visio"
".vxml"="text/xml"
".wav"="音訊/wav"
".wax"="音訊/x-ms-wax "
"。 .wbmp"="image /vnd.wap.wbmp"
".wiz"="application/msword"
".wk3"="application/x-wk3"
".wk4"=" application/x-wk4"
".wkq"="application/x-wkq"
".wks"="application/x-wks"
".wm"="video/x-ms -wm"
“.wma”=“音訊/x-ms-wma”
“.wmd”=“應用程式/x-ms-wmd”
“.wmf”=“應用程式/ x-wmf”
“ .wml"="text/vnd.wap.wml"
".wmv"="video/x-ms-wmv"
".wmx"="video/x -ms-wmx"
".wmz"="application/x-ms-wmz"
".wp6"="application/x-wp6"
".wpd"="application/x- wpd"
".wpg "="application/x-wpg"
".wpl"="application/vnd.ms-wpl"
".wq1"="application/x-wq1"
".wr1"="應用程式/x-wr1"
".wri"="應用程式/x-wri"
".wrk"="應用程式/x-wrk"
".ws"="應用程式/x-ws "
".ws2"="application/x-ws"
".wsc"="text/scriptlet"
".wsdl"=" text/xml"
".wvx"= “視訊/x-ms-wvx”
“.xdp”=“application/vnd.adobe.xdp”
“.xdr”=“text/xml ”
“.xfd”=“application/” vnd.adobe.xfd"
".xfdf"="application/vnd.adobe.xfdf"
".xhtml"="text/html"
".xls"="application/vnd.ms -excel"
".xls"="application/x-xls"
".xlw"="application/x-xlw"
" .xml"="text/xml"
" .xpl"="音訊/scpls"
".xq"="文字/xml"
".xql"="文字/xml"
".
xquery
"="文字/xml"
".xsd"="文字/xml" ".xsl"="文字/xml" ".xslt" ="文字/xml"
".xwd" ="應用程式/x-xwd"
".x_b"="應用程式/x-x_b"
".x_t"="應用程式/ x-x_t"
以上是header函數實作檔下載提示儲存用法詳解的詳細內容。更多資訊請關注PHP中文網其他相關文章!

熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

Video Face Swap
使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

熱工具

記事本++7.3.1
好用且免費的程式碼編輯器

SublimeText3漢化版
中文版,非常好用

禪工作室 13.0.1
強大的PHP整合開發環境

Dreamweaver CS6
視覺化網頁開發工具

SublimeText3 Mac版
神級程式碼編輯軟體(SublimeText3)

Go語言提供了兩種動態函數創建技術:closures和反射。 closures允許存取閉包作用域內的變量,而反射可使用FuncOf函數建立新函數。這些技術在自訂HTTP路由器、實現高度可自訂的系統和建置可插拔的元件方面非常有用。

在C++函數命名中,考慮參數順序至關重要,可提高可讀性、減少錯誤並促進重構。常見的參數順序約定包括:動作-物件、物件-動作、語意意義和遵循標準函式庫。最佳順序取決於函數目的、參數類型、潛在混淆和語言慣例。

1. SUM函數,用於對一列或一組單元格中的數字進行求和,例如:=SUM(A1:J10)。 2、AVERAGE函數,用於計算一列或一組儲存格中的數字的平均值,例如:=AVERAGE(A1:A10)。 3.COUNT函數,用於計算一列或一組單元格中的數字或文字的數量,例如:=COUNT(A1:A10)4、IF函數,用於根據指定的條件進行邏輯判斷,並返回相應的結果。

C++函數中預設參數的優點包括簡化呼叫、增強可讀性、避免錯誤。缺點是限制靈活性、命名限制。可變參數的優點包括無限彈性、動態綁定。缺點包括複雜性更高、隱式型別轉換、除錯困難。

C++中的函數傳回參考類型的好處包括:效能提升:引用傳遞避免了物件複製,從而節省了記憶體和時間。直接修改:呼叫方可以直接修改傳回的參考對象,而無需重新賦值。程式碼簡潔:引用傳遞簡化了程式碼,無需額外的賦值操作。

自訂PHP函數與預定義函數的差異在於:作用域:自訂函數僅限於其定義範圍,而預定義函數可在整個腳本中存取。定義方式:自訂函數使用function關鍵字定義,而預先定義函數則由PHP核心定義。參數傳遞:自訂函數接收參數,而預先定義函數可能不需要參數。擴充性:自訂函數可以根據需要創建,而預定義函數是內建的且無法修改。

C++中的異常處理可透過自訂異常類別增強,提供特定錯誤訊息、上下文資訊以及根據錯誤類型執行自訂操作。定義繼承自std::exception的異常類,提供特定的錯誤訊息。使用throw關鍵字拋出自訂異常。在try-catch區塊中使用dynamic_cast將捕獲到的異常轉換為自訂異常類型。在實戰案例中,open_file函數會拋出FileNotFoundException異常,捕捉並處理該異常可提供更具體的錯誤訊息。
