【问题标题】:Rails how to provide file download not through controller?Rails如何不通过控制器提供文件下载?
【发布时间】:2012-01-11 17:04:04
【问题描述】:

我想列出本地文件夹中文件的文件下载链接
当我使用这个
<a href="/home/tmpfile.txt">download_link</a>
它抱怨
没有路由匹配 [GET] "/home/tmpfile.txt"


也得到
没有路由匹配 [GET] "/home/tmpfile.txt"
添加get "/home/tmpfile.txt" 到config/route.rb 不能解决问题

我不想在控制器中使用 send_file 函数,因为我有很多文件
我正在寻找这样的东西
ftp://ftp.ncbi.nih.gov/pub/mmdb/cdd/

有人有简单的解决方案吗?

【问题讨论】:

    标签: ruby-on-rails


    【解决方案1】:

    /home/tmpfile.txt 是您的文件系统中的路径还是服务器虚拟文件系统中的路径? 如果它是文件系统中的路径,您需要将其移动到 public 文件夹,尽管它在网络服务器根目录中可用!

    【讨论】:

    • 我将文件移至公用文件夹,现在可以使用了。谢谢!有什么方法可以链接到系统路径而不是将文件放在公用文件夹中?
    • 但是rails没有我上面给出的链接的默认文件夹树视图吗?
    • public 是公共文件的 Rails 服务器的默认根目录!
    • 当我点击下载链接时,它会在新窗口中打开文件,而不是弹出下载对话框。如何让它保存文件而不是打开它?
    • 这是因为浏览器可以解释 .txt 文件。当您希望将其作为下载推送到客户端时,您必须使用 send_file!
    猜你喜欢
    • 1970-01-01
    • 2011-05-09
    • 1970-01-01
    • 1970-01-01
    • 2012-09-19
    • 1970-01-01
    • 2017-10-07
    • 1970-01-01
    • 2017-05-09
    相关资源
    最近更新 更多