用于移动设备的HTTP标头“内容类型:应用程序/强制下载”的实用程序?

我目前正在使用PHP脚本,该脚本允许您通过访问链接从移动设备下载媒体内容(视频,音频,图片...)。(即http://www.my-web-site.com/download.php?id=7ejs8ap)当我在最近的移动设备(三星Galaxy S,iPhone 4S和其他一些手机)上对其进行测试时,我的脚本非常有效。 ),但我的旧手机Samsung C3050发生错误。我想下载的媒体只是我通常轻松下载的音频mp3文件。


该错误似乎是“未知内容类型”。因此,由于我唯一的HTTP标头Content-Type是“ application / force-download”,因此我尝试对此进行注释,然后重试。然后,它起作用。但是现在,我目前正在询问这种Content-Type的含义以及它是否可以强制用于其他移动设备。我在iPhone 4上没有Content-Type的情况下进行了测试,但是它可以工作,但是我不确定是否适用于所有移动设备。


有人可以向我解释一下Content-Type的工作原理,为什么它不是标准的MIME或其他可以帮助我确保这是每次下载的可选Content-Type的原因,无论文件,浏览器或设备是什么正在下载吗?


感谢大家。


这是我发送的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);

?>

编辑:我刚尝试使用Sony Xperia,但下载未成功:我只看到要下载的文件的“ html编码”字节。如果应用程序/八位字节流或应用程序/强制下载不起作用,我如何知道必须使用哪种内容类型?


慕森卡
浏览 805回答 3
3回答

慕侠2389804

Content-Type: application/force-download表示“我,网络服务器,将向您(浏览器)说谎该文件的内容,以便您不会将其视为PDF / Word文档/ MP3 /任何文件,并提示用户将神秘文件保存到磁盘”。这是一个肮脏的骇客,当客户端不执行“保存到磁盘”操作时,骇人破解。对于使用的任何媒体(例如audio/mpegmp3),请使用正确的mime类型。Content-Disposition: attachment; etc etc如果要鼓励客户端下载标题,请使用标头,而不要遵循默认行为。

小怪兽爱吃肉

application/force-download不是标准的MIME类型。这是某些浏览器支持的一种黑客,最近才添加。您的问题实际上没有任何意义。这就像问为什么Internet Explorer 4不支持最新的CSS 3功能。
打开App,查看更多内容
随时随地看视频慕课网APP