强制浏览器下载视频,而不是在 html 中打开 [重复]

Posted

技术标签:

【中文标题】强制浏览器下载视频,而不是在 html 中打开 [重复]【英文标题】:Force browser to download the video instead opening in html [duplicate] 【发布时间】:2018-03-04 05:17:37 【问题描述】:

link

以上是下载链接.... 我正在制作一个下载站点,但下载链接在浏览器中打开而不是下载。 我也试过,但没有工作!!!!我怎样才能让我的网站可以下载这个!

PS:可以像右键一样保存..

【问题讨论】:

压缩视频并添加到链接 a href='video.zip' ... 这意味着他必须先将视频下载到他的服务器。类似的是谷歌 向它发送一个 php 脚本,提供一个需要下载的 mime 类型(我认为是八位字节流),然后读取文件并将内容提供给它们。 现在有href链接的下载属性,不完全支持,见上链接 htmldownload 属性不起作用,因为它将是启用 CORS 的资源。 【参考方案1】:

我会通过 php 管道文件:

$filename= 'somefile.gif';
$url = 'https://somesite.tld'.$filename;
header("Content-Transfer-Encoding: Binary"); 
header("Content-disposition: attachment; filename=\"$filename\""); 
echo readfile($url);

用你自己的 url 和文件名试试这个。在浏览器中导航到此 php 脚本,您的文件将被下载。

【讨论】:

您甚至可能想添加header('Content-Type: application/octet-stream');【参考方案2】:

您可以先使用curl 将链接下载到您的服务器,然后您可以从您的服务器下载。

从服务器链接下载代码文件

curl_setopt($ch, CURLOPT_SSLVERSION,3);

$source = "https://r3---sn-h557snlz.googlevideo.com/videoplayback?id=o-ALLyHMODFlHOKLmejy__bT3j3IkmFCfFfXrFA2tfi3Eu&ei=RyXFWeKkKI_cogOH0LGgAg&ip=27.34.20.130&pl=21&ratebypass=yes&itag=43&expire=1506113959&signature=6AB44626DF3DC5CC517D1B0C7DC1ACF27CC7B6A7.2BC18ED29E93C2B8150031A26E88992AB0EBDA1E&key=cms1&gir=yes&dur=0.000&source=youtube&lmt=1490104605623196&requiressl=yes&ipbits=0&sparams=clen,dur,ei,expire,gir,id,initcwndbps,ip,ipbits,ipbypass,itag,lmt,mime,mip,mm,mn,ms,mv,pcm2cms,pl,ratebypass,requiressl,source&clen=8147748&mime=video%2Fwebm&req_id=7d993d5e8d1aa3ee&redirect_counter=2&fexp=23702512&cms_redirect=yes&ipbypass=yes&mip=171.76.76.26&mm=30&mn=sn-h557snlz&ms=nxu&mt=1506094130&mv=m";
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $source);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_SSLVERSION,3);
$data = curl_exec ($ch);
$error = curl_error($ch); 
curl_close ($ch);

$destination = "/path/to/public/file.webm";
$file = fopen($destination, "w+");
fputs($file, $data);
fclose($file);

你的html之后可以包含如下

<a href="/file.webm" download>
  Download video
</a>

【讨论】:

以上是关于强制浏览器下载视频,而不是在 html 中打开 [重复]的主要内容,如果未能解决你的问题,请参考以下文章

PHP PHP强制文件下载而不是在新选项卡/窗口中打开

PHP强制文件下载,而不是在新的选项卡/窗口中打开

强制浏览器下载 PDF 文档而不是打开它

使用 htaccess 强制下载图片

如何让文件下载而不是在浏览器中打开?

使用.htaccess强制下载文件或图像