Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/89.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Html 如何使视频文件可供下载?_Html_Href - Fatal编程技术网

Html 如何使视频文件可供下载?

Html 如何使视频文件可供下载?,html,href,Html,Href,我试图在我的网站上提供视频下载选项。 我有可供下载的直接链接(以.mp4/.webm结尾)(如果有必要的话,它们不在我的服务器上托管)。 这就是我所尝试的: <a href="http://stream.flowplayer.org/bauhaus/624x260.webm" download>Download</a> 它只在chrome浏览器上运行,在FireFox浏览器中,它只会在浏览器上打开视频。HTML5添加了下载属性,您在示例中使用了该属性,但该

我试图在我的网站上提供视频下载选项。 我有可供下载的直接链接(以.mp4/.webm结尾)(如果有必要的话,它们不在我的服务器上托管)。 这就是我所尝试的:

     <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')echo(fopen('http://user:pass@blah.com/vid.mp4,“r”);
]我有Firefox21,但它不工作。但在chrome中,它可以工作。
<a href="direct_download.php?file=fineline.mp3">Download the mp3</a>