新手问题 请教下 send_file 的问题!

liuyang_1991 · 2017年08月25日 · 最后由 liuyang_1991 回复于 2017年08月26日 · 1285 次阅读
def download_contract
  @order = Order.find(params[:id])
    send_file "http://localhost:3000#{current_user.avatar.url}" and return
end
<a class="odpp-download" href="<%= download_contract_member_user_order_path(current_user,order) %>">下载</a>

整个项目的权限我都给了777, 图片路径放到url地址上也能正常显示!
请问给为这是什么情况啊?
我需要改哪里?
谢谢!
共收到 4 条回复
2楼 已删除

这里楼主应该搞错了一个基础问题,send_file 是需要传入一个本地磁盘的路径,然后拿到目标文件的 File IO 对象,然后转交给前端的 web server(如 nginx)用 X-Accel-Redirect header 的方式返回给浏览器并指导浏览器下载的。

如果楼主想返回一个 url,应该用 redirect_to

send_file 是发送文件内容啊。你硬盘上哪有 http 这文件。

liuyang_1991 关闭了讨论 09月04日 09:07
需要 登录 后方可回复, 如果你还没有账号请点击这里 注册