为什么这个PHP下载脚本仅在Android上失败

时间:2011-11-05 14:31:21

标签: php android download

我有一个简单的脚本,允许有人将电影文件下载到他们的设备。除了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>";
    }
?>

2 个答案:

答案 0 :(得分:1)

Because Android doesn't natively support Quicktime, an Apple technology.用户下载此应用的客户也很可能不会将http信封上设置的文件名视为用于将文件写入文件系统的名称,因为有nothing forcing it to

答案 1 :(得分:0)

问题是文件名有空格,Android不喜欢这样。我删除了空格,一切都很好。