2013-12-17 72 views
1

到目前为止,我已经成功地设置了CarrierWave,以便它可以上传许多文件,包括.pdf,.mp3,.wav,.mp4和.mov。真棒,这对我来说是一个非常好的成功。下载文件问题,CarrierWave上传

我现在要做的是显示这些上传。在该显示器上,我想要两个链接,一个用于下载上传的文件,另一个用于查看上传的文件。目前,当我试图为用户下载文件时,查看上传的文件是有效的。

目前,这里是允许用户查看/收听/收看上传文件的代码:以上

<% @user.uploads.each do |upload| %> 
    <tr> 
    <td><%= link_to upload.name, upload.attachment_url.to_s %></td> 
    <td class="right_align"><%= upload.to_a_date %></td> 
    <td class="right_align"><%#= upload.file_size %></td> 
    </tr> 
<% end %> 

点击链接允许用户查看上传。我将如何允许用户下载相同的内容?这给了我正确的路径,但是当我点击链接时,它会查看文件而不是下载它。

我也曾尝试用下面的代码来做到这一点在HTML5:

<a href="#{upload.attachment_url.to_s}" download>Download</a> 

这不下载正确的文件。

+0

这是一个服务器的设置问题,而不是的Ruby/Rails的事情,但我不能告诉你如何做到这一点。你使用什么服务器? –

+0

这只是本地在localhost上。 – user2184718

+0

尝试在heroku上部署并检查问题是否存在。我认为它会消失。 –

回答

0

创建此单独行动,并使用Rails的send_file方法:

def download_file 
    upload = Upload.find(params[:id]) 
    send_file upload.attachment.url 
end 
+0

这是一个控制器操作还是一个方法。 – user2184718

+0

控制器操作 – NARKOZ