我目前正在编写一个 PHP 脚本,它允许您通过访问链接从移动设备下载媒体内容(视频、音频、图片...)。(即http://www.my-web-site.com/download.php?id=7ejs8ap)当我用最近的手机(三星 Galaxy S、iPhone 4S、其他一些... ) 但我的旧手机三星 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 编码”字节。如果 application/octet-stream 或 application/force-download 不起作用,我怎么知道我必须使用什么内容类型?