下载文件问题,CarrierWave上传

时间:2013-12-17 19:11:51

标签: ruby-on-rails file-upload download carrierwave

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

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

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

<% @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>

这不会下载正确的文件。

1 个答案:

答案 0 :(得分:0)

为此创建单独的操作并使用Rails send_file方法:

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