我不是一个网络开发者。但我试图帮助某人从他们的服务器传送视频。基本上当用户点击网站上的按钮时,我们希望提示用户下载视频。所以在谷歌搜索了一段时间后,我想出了如何使用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浏览器上下载文件时,它将失败并且所有内容都显示为“Download Unsuccessful”。
另一件事是,在我的电脑上(使用Firefox),下载开始,大约200MB,它就停止了。它没有显示出任何失败的迹象,它看起来就像下载完了。实际文件大小约为1GB。
我已经玩了很多内容类型,希望这是问题所在。我使用了“video / mpeg”和“application / force-download”,它们都没有用。
有没有我写的东西?这两个问题可能有关系吗?我应该采取不同的方式吗?感谢您的任何意见。
答案 0 :(得分:1)
Android浏览器似乎不喜欢Content-disposition:
及相关标头。我建议只是简单地重定向到相关文件。