我正在尝试在我的控制器download
中编写代码,以便从一些外部网址www.abc.com/foo.mp4
开始下载。到目前为止,我已经用这种方式构建了它:
def download
redirect_to 'www.abc.com/foo.mp4'
end
它可以工作,但问题是它在同一个标签中打开一个视频。我想要的是它应该在这个视频的浏览器中开始下载。
我在论坛中搜索过它但找不到任何解决方案。我发现只是首先使用URL下载视频,然后将其作为下载提供,但这不是我想要的。我希望直接从外部URL开始下载。
答案 0 :(得分:0)
我认为这可能会对您有所帮助:Download from a link with HTML5
在你的情况下,它将是:
<a href="www.abc.com/foo.mp4" download="foo4.mp4">download me</a>
这样,从同一个网页,当用户点击它时,它将开始下载,你不会通过控制器,但如果你想要通过控制器“下载”,然后只是渲染一个页面,其中包含某些信息,说明正在下载或其他内容,然后将我在上面写的链接放在该页面的某个地方(如果你愿意,你可以给它一个类名并用css隐藏该类以便链接是不可见的,但它是在那里),最后是一个Javascript函数,它在加载时调用自身并执行点击该链接的操作:
(function(){
$('#whateverIdYouGiveToTheHtmlElement').click();
})();
我应该澄清$('#whateverIdYouGiveToTheLink')。click();是jQuery而不是纯Javascript,但是因为你使用Rails我假设该项目有jQuery(默认情况下Rails附带jQuery)。