pca*_*asa 5 file-upload ruby-on-rails carrierwave
想要确保只有登录的用户可以查看/下载从carrierwave上传的文件.
这是怎么做到的?
将商店目录从公共目录移动到RAILS_ROOT,创建显示和下载的路径.
问题是如果它是一个图像,<%= image_tag(photo.image_url) %>我得到完整路径/Users/myname/projects/appname/files/image/id/image.png,这样就不会渲染.
此外,如果视图不会渲染我的绝对路径,只是来自网站的相对路径,那将是很好的.
这实际上是一件非常容易做到的事情。这是一个讨论 sendfile 和 x-sendfile 的博客。这应该会引导您走向正确的方向。
http://www.therailsway.com/2009/2/22/file-downloads-done-right
这是它的 Rails 文档。
http://api.rubyonrails.org/classes/ActionController/Streaming.html#method-i-send_file
由于这一切都是在控制器级别处理的,因此只需确保您有一个 before_filter 来检查用户是否获得授权,然后在控制器操作中使用 send_file 方法。
| 归档时间: |
|
| 查看次数: |
2965 次 |
| 最近记录: |