强制保存视频链接对话框

时间:2011-07-02 07:47:09

标签: javascript html5

我想为视频创建下载链接。单击链接时,如何强制打开另存为对话框。

<a href="#" onclick="downloadVideo()">Download Video</a>

1 个答案:

答案 0 :(得分:1)

正如Pekka暗示的那样,您通过发送额外的HTTP标头强制从普通HTML链接下载文件。这意味着您可能需要更改Web服务器的配置才能使其正常工作。

通常,点击链接不会返回Content-Disposition标题;设置是如何显示“保存文件...”对话框。响应标题看起来有点像:

HTTP/1.1 200 OK
Date: Sun, 21 Aug 2011 11:45:59 GMT
Server: Apache/2.2.14 (Ubuntu)
Content-Disposition: attachment; filename=video.m4v;

在不知道您的应用程序或网站的内部工作原理的情况下,我暂时建议(为了JavaScript关闭用户的利益),如果可能的话,不要使用JS。

您最好的办法是更改Web服务器的配置。使用 Apache ,您可以执行以下操作:

<FilesMatch "\.m4v$">
  <IfModule mod_headers.c>
    Header set Content-Disposition "attachment"
  </IfModule>
</FilesMatch>

...这将使所有M4V文件显示“保存文件...”对话框。或者,如果您的应用程序是用 PHP 编写的,则可以执行以下操作:

header('Content-Disposition: attachment; filename="video.m4v"');

This page有一些 JavaScript (可能是 JScript ?),您可以使用它在Internet Explorer中工作,但不能在任何其他浏览器中使用:

<a href="javascript:void(0);" onclick="document.execCommand('SaveAs',true,'video.m4v');">Download video</a>