Html 如何使视频文件可供下载?
我试图在我的网站上提供视频下载选项。 我有可供下载的直接链接(以.mp4/.webm结尾)(如果有必要的话,它们不在我的服务器上托管)。 这就是我所尝试的:Html 如何使视频文件可供下载?,html,href,Html,Href,我试图在我的网站上提供视频下载选项。 我有可供下载的直接链接(以.mp4/.webm结尾)(如果有必要的话,它们不在我的服务器上托管)。 这就是我所尝试的: <a href="http://stream.flowplayer.org/bauhaus/624x260.webm" download>Download</a> 它只在chrome浏览器上运行,在FireFox浏览器中,它只会在浏览器上打开视频。HTML5添加了下载属性,您在示例中使用了该属性,但该
<a href="http://stream.flowplayer.org/bauhaus/624x260.webm" download>Download</a>
它只在chrome浏览器上运行,在FireFox浏览器中,它只会在浏览器上打开视频。HTML5添加了下载属性,您在示例中使用了该属性,但该属性为空。向“下载”属性添加一个值,然后单击“下载” ie将a标签中的download更改为download=“624x260.webm” 对于不兼容HTML5的浏览器,最直接的方法是在链接中加上“右键单击下载”的指示。这将涵盖大多数情况和浏览器 在这里概述了一些技术,我意识到你不能压缩文件
有很多更复杂的方法可以做到这一点,包括修改web服务器配置,但不是每个人都有这样做的权限/诀窍 您需要一个包装器脚本,它可以适当地设置内容类型Content Disposition头,并输出您想要提供服务的文件 在PHP中,可以这样做: 文件名:624x260.php
<?php
// We'll be outputting a webm video
header('Content-type: video/webm');
// It will be called downloaded.webm
header('Content-Disposition: attachment; filename="download.webm"');
readfile('624x260.webm');
?>
注意:Chrome 14+和Firefox 20+支持下载属性
作为其他浏览器的替代,您可以从这里使用jQuery插件
或
你可以像这样下载它
<a href="http://video.webmfiles.org/elephants-dream.webm" class="download" target="_blank">Download</a>
$(document).on("click", "a.download", function () {
$.fileDownload($(this).prop('href'))
.done(function () { alert('File download a success!'); })
.fail(function () { alert('File download failed!'); });
return false;
});
$(文档)。在(“单击”,“a.download”,函数(){
$.fileDownload($(this.prop('href'))
.done(函数(){alert('File download a success!');})
.fail(函数(){alert('File download failed!');});
返回false;
});
如果您碰巧有一台apache服务器,可以在其中编辑.htaccess文件,请添加此行
AddType application/octet-stream .webm
如果您不想这样做,也可以通过php来实现
PHP代码:
<?php
$file = $_GET['file'];
header ("Content-type: octet/stream");
header ("Content-disposition: attachment; filename=".$file.";");
header("Content-Length: ".filesize($file));
readfile($file);
exit;
?>
HTML代码:
<a href="direct_download.php?file=fineline.mp3">Download the mp3</a>
谢谢,它很管用,但如果你不介意的话,现在我有另一个问题;我尝试添加一个包含用户名和密码的视频链接,如下所示:但它对我不起作用。当我尝试在浏览器上与用户一起运行它并传递它时,它会起作用。尝试在PHP文件中使用视频的绝对链接(包括http://):<代码>读取文件('http://user:pass@stream.flowplayer.org/bauhaus/624x260.webm')我试过了,但没用。我尝试使用的文件实际上是.mp4,因此我将内容类型更改为“video/mp4”,但没有帮助。该文件是托管在您的服务器上,还是从远程站点获取?您可以尝试使用fopen()而不是readfile(),但可能存在其他跨域文件策略问题。这可能也会有帮助:[还请注意,如果使用fopen(),您将不得不回显输出:echo(fopen('http://user:pass@blah.com/vid.mp4,“r”);
]我有Firefox21,但它不工作。但在chrome中,它可以工作。
<a href="direct_download.php?file=fineline.mp3">Download the mp3</a>