PHP下载文件的代码和常见文件的http中content-type头的值(MIME类型)
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了PHP下载文件的代码和常见文件的http中content-type头的值(MIME类型),小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含6167字,纯文字阅读大概需要9分钟。
内容图文
![PHP下载文件的代码和常见文件的http中content-type头的值(MIME类型)](/upload/InfoBanner/zyjiaocheng/609/d2cf92c14d4d45c8bfb772c7b7bbd9d4.jpg)
PHP 中如何下载文件。简单的文件下载只需要使用 HTML 的链接标记<a>
,并将 href 属性的值指定为要下载的文件路径即可,如下所示:
<a href="http://c.biancheng.net/php/logo.zip">下载文件<a>
通过上面的方法实现文件下载的话,只能处理一些浏览器不能识别的类型文件,例如上面示例中用到的 zip 压缩文件,浏览器不能直接打开,所以会弹出一个下载提示,但如果将链接后面的文件改成后缀名为.html的网页文件、图片文件或者 PHP 程序脚本文件的话,使用这种链接形式,则会将文件内容直接输出到浏览器中,并不会提示用户下载。
为了避免要下载的文件直接在浏览器中输出,我们可以向浏览器发送一个头信息,用来通知浏览器进行下载文件的处理。在 PHP 中可以使用 header() 函数发送网页的头部信息给浏览器,该函数接受一个头信息的字符串作为参数,其语法格式如下:
header(string $string[, bool $replace = true[, int $http_response_code]])
其中,$string 就是头信息的字符串;$replace 为可选参数,用来设置是否使用后面的头信息替换前面相同类型的头信息,默认为 true;$http_response_code 为可选参数,用来强制指定 HTTP 响应的值。
要实现文件下载需要调用三次 header() 函数,下面是以下载图片 logo.jpg 为例,需要发送的头信息的代码如下所示:
header('Content-type:image/jpg'); // 发送指定文件 MIME 类型的头信息
header('Content-Disposition:attachment;filename="logo.jpg"'); // 发送描述文件的头信息,附件和文件名
header('Content-Length:3390'); // 发送指定文件大小的信息,单位是字节
在使用了 header() 函数向浏览器发送了这三行头信息之后,图片 logo.jpg 就不会直接在浏览器中输出了,而是在浏览器以文件的形式将其下载到本地。
头部信息中需要一些文件的属性信息,可以使用 PHP 中提供的函数来获取。设置完头部信息以后,需要将文件的内容输出到浏览器,以便进行下载。可以使用 PHP 中的文件系统函数将文件内容读取出来后,直接输出给浏览器。最方便的是使用 readfile() 函数,将文件内容读取出来并直接输出。
【示例】以下载图片 logo.jpg 为例,实现代码如下所示:
<?php $file = 'logo.jpg'; header('Content-type:image/jpg'); // 发送指定文件 MIME 类型的头信息 header('Content-Disposition:attachment;filename="'.$file.'"'); // 发送描述文件的头信息,附件和文件名 header('Content-Length:'.filesize($file)); // 发送指定文件大小的信息,单位是字节 readfile($file); ?>
运行上面的代码即可将 logo.jpg 下载到本地。
常见文件的http中content-type头的值(MIME类型)
An official listing of defined MIME types:
.ai - application/postscript
.aif - audio/x-aiff
.aifc - audio/x-aiff
.aiff - audio/x-aiff
.asc - text/plain
.au - audio/basic
.avi - video/x-msvideo
.bcpio - application/x-bcpio
.bin - application/octet-stream
.c - text/plain
.cc - text/plain
.ccad - application/clariscad
.cdf - application/x-netcdf
.class - application/octet-stream
.cpio - application/x-cpio
.cpt - application/mac-compactpro
.csh - application/x-csh
.css - text/css
.dcr - application/x-director
.dir - application/x-director
.dms - application/octet-stream
.doc - application/msword
.drw - application/drafting
.dvi - application/x-dvi
.dwg - application/acad
.dxf - application/dxf
.dxr - application/x-director
.eps - application/postscript
.etx - text/x-setext
.exe - application/octet-stream
.ez - application/andrew-inset
.f - text/plain
.f90 - text/plain
.fli - video/x-fli
.gif - image/gif
.gtar - application/x-gtar
.gz - application/x-gzip
.h - text/plain
.hdf - application/x-hdf
.hh - text/plain
.hqx - application/mac-binhex40
.htm - text/html
.html - text/html
.ice - x-conference/x-cooltalk
.ief - image/ief
.iges - model/iges
.igs - model/iges
.ips - application/x-ipscript
.ipx - application/x-ipix
.jpe - image/jpeg
.jpeg - image/jpeg
.jpg - image/jpeg
.js - application/x-javascript
.kar - audio/midi
.latex - application/x-latex
.lha - application/octet-stream
.lsp - application/x-lisp
.lzh - application/octet-stream
.m - text/plain
.man - application/x-troff-man
.me - application/x-troff-me
.mesh - model/mesh
.mid - audio/midi
.midi - audio/midi
.mif - application/vnd.mif
.mime - www/mime
.mov - video/quicktime
.movie - video/x-sgi-movie
.mp2 - audio/mpeg
.mp3 - audio/mpeg
.mpe - video/mpeg
.mpeg - video/mpeg
.mpg - video/mpeg
.mpga - audio/mpeg
.ms - application/x-troff-ms
.msh - model/mesh
.nc - application/x-netcdf
.oda - application/oda
.pbm - image/x-portable-bitmap
.pdb - chemical/x-pdb
.pdf - application/pdf
.pgm - image/x-portable-graymap
.pgn - application/x-chess-pgn
.png - image/png
.pnm - image/x-portable-anymap
.pot - application/mspowerpoint
.ppm - image/x-portable-pixmap
.pps - application/mspowerpoint
.ppt - application/mspowerpoint
.ppz - application/mspowerpoint
.pre - application/x-freelance
.prt - application/pro_eng
.ps - application/postscript
.qt - video/quicktime
.ra - audio/x-realaudio
.ram - audio/x-pn-realaudio
.ras - image/cmu-raster
.rgb - image/x-rgb
.rm - audio/x-pn-realaudio
.roff - application/x-troff
.rpm - audio/x-pn-realaudio-plugin
.rtf - text/rtf
.rtx - text/richtext
.scm - application/x-lotusscreencam
.set - application/set
.sgm - text/sgml
.sgml - text/sgml
.sh - application/x-sh
.shar - application/x-shar
.silo - model/mesh
.sit - application/x-stuffit
.skd - application/x-koan
.skm - application/x-koan
.skp - application/x-koan
.skt - application/x-koan
.smi - application/smil
.smil - application/smil
.snd - audio/basic
.sol - application/solids
.spl - application/x-futuresplash
.src - application/x-wais-source
.step - application/STEP
.stl - application/SLA
.stp - application/STEP
.sv4cpio - application/x-sv4cpio
.sv4crc - application/x-sv4crc
.swf - application/x-shockwave-flash
.t - application/x-troff
.tar - application/x-tar
.tcl - application/x-tcl
.tex - application/x-tex
.texi - application/x-texinfo
.texinfo - application/x-texinfo
.tif - image/tiff
.tiff - image/tiff
.tr - application/x-troff
.tsi - audio/TSP-audio
.tsp - application/dsptype
.tsv - text/tab-separated-values
.txt - text/plain
.unv - application/i-deas
.ustar - application/x-ustar
.vcd - application/x-cdlink
.vda - application/vda
.viv - video/vnd.vivo
.vivo - video/vnd.vivo
.vrml - model/vrml
.wav - audio/x-wav
.wrl - model/vrml
.xbm - image/x-xbitmap
.xlc - application/vnd.ms-excel
.xll - application/vnd.ms-excel
.xlm - application/vnd.ms-excel
.xls - application/vnd.ms-excel
.xlw - application/vnd.ms-excel
.xml - text/xml
.xpm - image/x-xpixmap
.xwd - image/x-xwindowdump
.xyz - chemical/x-pdb
.zip - application/zip
内容总结
以上是互联网集市为您收集整理的PHP下载文件的代码和常见文件的http中content-type头的值(MIME类型)全部内容,希望文章能够帮你解决PHP下载文件的代码和常见文件的http中content-type头的值(MIME类型)所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。