【问题标题】:Script to Download File from Android Browser从 Android 浏览器下载文件的脚本
【发布时间】:2011-03-31 19:37:43
【问题描述】:

我绝对不是网络开发人员。但我正在尝试帮助某人从他们的服务器传送视频。基本上,当用户单击网站上的按钮时,我们希望提示用户下载视频。所以在谷歌搜索了一段时间后,我想出了如何使用 content-disposition 编写一个简短的 php 脚本:

<?php
$fn = 'videoFile.mp4';

header("Pragma: public");
header("Expires: 0");
header("Cache-Control: must-revalidate, post-check=0, pre-check=0");
header("Cache-Control: private",false);
header('Content-Description: File Transfer');
header('Content-type: video/mp4');
header('Content-Length: '.filesize($fn));
header('Content-disposition: attachment; filename='.$fn);
readfile($fn);
?>

所以网站上的按钮指向这个脚本。 PC 浏览器似乎可以毫无问题地开始下载。但这主要针对Android手机。当您在默认的 Android 浏览器上单击下载文件时,它会失败,并且只显示“下载不成功”。

另一件事是,在我的计算机上(使用 Firefox),下载开始并在大约 200MB 处停止。它没有显示任何失败的迹象,它只是看起来已经完成下载。实际文件大小约为 1GB。

我已经玩了很多内容类型,希望这就是问题所在。我使用了“video/mpeg”和“application/force-download”,但它们都不起作用。

有什么我没有写的吗?这两个问题可能相关吗?我应该以不同的方式解决这个问题吗?感谢您的任何意见。

【问题讨论】:

    标签: php android download content-disposition


    【解决方案1】:

    Android 浏览器似乎不喜欢Content-disposition: 和相关标头。我建议直接重定向到相关文件。

    【讨论】:

    • 感谢您的回复。我实际上发现我们需要的只是使用“ ForceType video/mp4 Header set Content-Disposition attachment ”添加/修改 .htaccess 文件。这可能是你的意思,我对网络东西不太了解,所以我不知道正确的术语。谢谢。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-12-19
    • 1970-01-01
    • 2014-09-09
    • 1970-01-01
    • 1970-01-01
    • 2013-03-22
    • 1970-01-01
    相关资源
    最近更新 更多