我有一个简单的脚本,允许有人将电影文件下载到他们的设备。除了Andriod之外,代码在我测试的所有内容上运行良好。 Android设备会识别名称和文件扩展名。它可能会调用文件2.qt或.bin。为什么这会失败?
<?php
if(isset($_GET['filename'])) {
header('Content-Description: File Transfer');
header('Content-Type: movie/quicktime');
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");
} else {
echo "Link: <a href='test.php?filename=test.mov'>Download Video</a>";
}
?>
答案 0 :(得分:1)
Because Android doesn't natively support Quicktime, an Apple technology.用户下载此应用的客户也很可能不会将http信封上设置的文件名视为用于将文件写入文件系统的名称,因为有nothing forcing it to。
答案 1 :(得分:0)
问题是文件名有空格,Android不喜欢这样。我删除了空格,一切都很好。