HTTP header“Content-Type:application / force-download”的实用工具?

我目前正在研究一个PHP脚本,允许您通过访问链接从移动设备下载媒体内容(video,audio,图片…)。 (即http://www.my-web-site.com/download.php?id=7ejs8ap )当我用最近的手机(三星Galaxy S,iPhone 4S,一些其他…)testing我的脚本时, ),但我的旧手机三星C3050发生错误。 我想下载的媒体只是一个audiomp3文件,我通常很容易下载。

该错误似乎是“未知内容types”。 所以,作为我唯一的HTTP头Content-Type是“应用程序/强制下载”,我试着评论这一点,然后再试一次。 然后,它的工作。 但是现在我正在问这个Content-Type是什么意思,如果可以强制别人移动。 我在iPhone 4上没有Content-Type的testing,它的工作原理,但我不确定所有的手机兼容性。

有人可以向我解释Content-Type是如何工作的,为什么这不是一个标准的MIME或其他一切,可以帮助我确定这是一个可选的内容types的每一个下载,无论文件,浏览器或设备正在下载?

感谢大家。

这是我发送的PHP头文件:

<?php //Assume that $filename and $filePath are correclty set. header('Content-Description: File Transfer'); header('Content-Disposition: attachment; filename="'.$filename.'"'); // header('Content-Type: application/force-download'); Non-standard MIME-Type, incompatible with Samsung C3050 for example. Let it commented readfile($filePath); ?> 

编辑:我只是尝试用索尼Xperia,下载不成功:我只看到我想下载的文件的“HTML编码”字节。 如果应用程序/八位字节stream或应用程序/强制下载不起作用,我怎么能知道我必须使用什么内容types?

Content-Type: application/force-download意思是“我,networking服务器,我要骗你(浏览器)这个文件是什么,这样你就不会把它作为一个PDF / Word文档/ MP3 /什么和提示用户将神秘文件保存到磁盘“。 当客户端没有“保存到磁盘”时,这是一个非常糟糕的破解。

对正在使用的任何媒体使用正确的mimetypes(例如mp3 audio/mpeg )。

使用Content-Disposition: attachment; etc etc Content-Disposition: attachment; etc etc标题,如果你想鼓励客户下载它,而不是遵循默认行为。

要下载文件,请使用以下代码…将文件名称与位置存储在$ filevariables中。 它支持所有的MIMEtypes

 $file = "location of file to download" header('Content-Description: File Transfer'); header('Content-Type: application/octet-stream'); header('Content-Disposition: attachment; filename='.basename($file)); header('Content-Transfer-Encoding: binary'); header('Expires: 0'); header('Cache-Control: must-revalidate, post-check=0, pre-check=0'); header('Pragma: public'); header('Content-Length: ' . filesize($file)); ob_clean(); flush(); readfile($file); 

要了解有关MIMEtypes,请参阅此链接: http : //php.net/manual/en/function.mime-content-type.php

application/force-download不是标准的MIMEtypes。 这是由一些浏览器支持的黑客,最近添加。

你的问题没有任何意义。 这就像问为什么Internet Explorer 4不支持最新的CSS 3function。