Content-type: How to force a file download


Posted on November 30, 2008


 

Word Document:
PHP Code:
$filename = "secure/writeToFile.doc";

header("Content-Length: " . filesize($filename));
header(´Content-Type: application/msword´);
header(´Content-Disposition: attachment; filename=writeToFile.doc´);

readfile($filename);
MPG / MPEG:
PHP Code:
header("Content-Length: " . filesize($filename));
header(´Content-Type: video/mpg´);
header(´Content-Disposition: attachment; filename=test2.mpg´);
Others just change the Content-Type:
PHP Code:
"pdf": "application/pdf"
"exe"
: "application/octet-stream"
"zip"
: "application/zip"
"xls"
: "application/vnd.ms-excel"
"ppt"
: "application/vnd.ms-powerpoint"
"gif"
: "image/gif"
"png"
: "image/png"
"jpg"
: "image/jpg"
"mp3"
: "audio/mpeg"
"mp3"
: "audio/mp3"
"wav"
: "audio/x-wav"
"mpe"
: "video/mpeg"
"mov"
: "video/quicktime"
"avi"
: "video/x-msvideo"
ENJOY!

*Note:* Just like all web aspects, Internet Explorer has some issues. If if doesn´t not want to play with IE, download the file first and then play it locally. This fixes most issues.

**Side note** Notice in my example, all of my files reside in directory "secure." This directory has the mod permissions of 700 (User r/w/e | Group "none" | Other "none" ). This is how you can secure or make people login into to view or download you files.

EDIT: more mime-types;
PHP Code:
application/andrew-inset    ez
application
/mac-binhex40    hqx
application
/mac-compactpro    cpt
application
/mathml+xml    mathml
application
/msword    doc
application
/octet-stream    bin dms lha lzh exe class so dll dmg
application
/oda    oda
application
/ogg    ogg
application
/pdf    pdf
application
/postscript    ai eps ps
application
/rdf+xml    rdf
application
/smil    smi smil
application
/srgs    gram
application
/srgs+xml    grxml
application
/vnd.mif    mif
application
/vnd.mozilla.xul+xml    xul
application
/vnd.ms-excel    xls
application
/vnd.ms-powerpoint    ppt
application
/vnd.wap.wbxml    wbxml
application
/vnd.wap.wmlc    .wmlc wmlc
application
/vnd.wap.wmlscriptc    .wmlsc wmlsc
application
/voicexml+xml    vxml
application
/x-bcpio    bcpio
application
/x-cdlink    vcd
application
/x-chess-pgn    pgn
application
/x-cpio    cpio
application
/x-csh    csh
application
/x-director    dcr dir dxr
application
/x-dvi    dvi
application
/x-futuresplash    spl
application
/x-gtar    gtar
application
/x-hdf    hdf
application
/x-httpd-php    .php .php4 .php3 .phtml
application
/x-httpd-php-source    .phps
application
/x-javascript    js
application
/x-koan    skp skd skt skm
application
/x-latex    latex
application
/x-netcdf    nc cdf
application
/x-pkcs7-crl    .crl
application
/x-sh    sh
application
/x-shar    shar
application
/x-shockwave-flash    swf
application
/x-stuffit    sit
application
/x-sv4cpio    sv4cpio
application
/x-sv4crc    sv4crc
application
/x-tar    .tgz tar
application
/x-tcl    tcl
application
/x-tex    tex
application
/x-texinfo    texinfo texi
application
/x-troff    t tr roff
application
/x-troff-man    man
application
/x-troff-me    me
application
/x-troff-ms    ms
application
/x-ustar    ustar
application
/x-wais-source    src
application
/x-x509-ca-cert    .crt
application
/xhtml+xml    xhtml xht
application
/xml    xml xsl
application
/xml-dtd    dtd
application
/xslt+xml    xslt
application
/zip    zip
audio
/basic    au snd
audio
/midi    mid midi kar
audio
/mpeg    mpga mp2 mp3
audio
/x-aiff    aif aiff aifc
audio
/x-mpegurl    m3u
audio
/x-pn-realaudio    ram rm
audio
/x-pn-realaudio-plugin    rpm
audio
/x-realaudio    ra
audio
/x-wav    wav
chemical
/x-pdb    pdb
chemical
/x-xyz    xyz
image
/bmp    bmp
image
/cgm    cgm
image
/gif    gif
image
/ief    ief
image
/jpeg    jpeg jpg jpe
image
/png    png
image
/svg+xml    svg
image
/tiff    tiff tif
image
/vnd.djvu    djvu djv
image
/vnd.wap.wbmp    .wbmp wbmp
image
/x-cmu-raster    ras
image
/x-icon    ico
image
/x-portable-anymap    pnm
image
/x-portable-bitmap    pbm
image
/x-portable-graymap    pgm
image
/x-portable-pixmap    ppm
image
/x-rgb    rgb
image
/x-xbitmap    xbm
image
/x-xpixmap    xpm
image
/x-xwindowdump    xwd
model
/iges    igs iges
model
/mesh    msh mesh silo
model
/vrml    wrl vrml
text
/calendar    ics ifb
text
/css    css
text
/html    .shtml html htm
text
/plain    asc txt
text
/richtext    rtx
text
/rtf    rtf
text
/sgml    sgml sgm
text
/tab-separated-values    tsv
text
/vnd.wap.wml    .wml wml
text
/vnd.wap.wmlscript    .wmls wmls
text
/x-setext    etx
video
/mpeg    mpeg mpg mpe
video
/quicktime    qt mov
video
/vnd.mpegurl    mxu m4u
video
/x-msvideo    avi
video
/x-sgi-movie    movie
x
-conference/x-cooltalk    ice
Additionally,

If you need to find the correct headers for other documents type, email yourself the particular document. Then notice (in Yahoo for instance) what it displays as the header. This way you can get any headers you need.


标签:N/A

 

在线学习答案查询入口
微信扫码联系
微信扫码联系