从Rails中的外部链接开始下载

时间:2016-09-25 08:32:07

标签: ruby-on-rails download controller

我正在尝试在我的控制器download中编写代码,以便从一些外部网址www.abc.com/foo.mp4开始下载。到目前为止,我已经用这种方式构建了它:

def download
  redirect_to 'www.abc.com/foo.mp4'
end

它可以工作,但问题是它在同一个标​​签中打开一个视频。我想要的是它应该在这个视频的浏览器中开始下载。

我在论坛中搜索过它但找不到任何解决方案。我发现只是首先使用URL下载视频,然后将其作为下载提供,但这不是我想要的。我希望直接从外部URL开始下载。

1 个答案:

答案 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)。