【问题标题】:Download File issue, CarrierWave upload下载文件问题,CarrierWave 上传
【发布时间】:2014-01-05 17:12:59
【问题描述】:

到目前为止,我已成功设置 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>

这不会下载正确的文件。

【问题讨论】:

  • 这是一个服务器设置问题,而不是 Ruby/Rails 问题,但是我无法告诉你如何去做。你用的是什么服务器?
  • 这只是在本地主机上。
  • 尝试在heroku上部署它并检查问题是否仍然存在。我想它会消失的。
  • 我知道这是一篇旧帖子。但是你有 github 吗?我想弄清楚如何允许上传 mov

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


【解决方案1】:

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

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

【讨论】:

  • 这是控制器动作还是方法。
猜你喜欢
  • 2011-11-10
  • 2012-12-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-07-05
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多