php - 为什么这个 PHP 下载脚本只在 Android 上失败

标签 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>";
    }
?>

最佳答案

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

关于php - 为什么这个 PHP 下载脚本只在 Android 上失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8020818/

相关文章:

php - 为什么我从 SagePay 收到错误 "4020 : Information received from an Invalid IP address."?

php - 将 LIMIT 1 添加到 COUNT 查询

javascript - 使用 jquery AJAX PDF 下载

php - 执行类别搜索 Sphinx php

php - 如何根据数据库中的另一个变量存储不同自增的ID

android - 转换文件 : Uri to File in Android

android - 如何实现带有搜索框的对话框?

java - 多个父类(super class)和代码重用

python-3.x - headless chrome 网络驱动程序太慢,无法下载文件

node.js - 使用 json2csv 创建后如何下载 CSV 文件