我在远程服务器(Apache + Tomcat)上有一些不同于Rails应用程序的PDF文件。我希望用户能够在“另存为”对话框中单击“确定”后下载它们
因此,在我的控制器中,我有一个处理下载请求的操作。这个动作只是redirects_to PDF的URL。问题是“另存为”对话框无法打开
def download
url = "#{server}/...../file.pdf"
redirect_to url
end
但是,如果我要获取PDF的完全限定URL并将其插入浏览器的地址栏,则会发生所需的行为
这两个请求之间显然存在差异。我没有 - 因为我不知道如何 - 例如设置Content-disposition或Content-type。或许,redirect_to只是错误的方式
所以我希望有人能帮我理解原因:
答案 0 :(得分:0)
尝试
def download
url = "#{server}/...../file.pdf"
send_file url, :type=>"application/pdf"
end
答案 1 :(得分:0)
将Content-Disposition
标题设置为附件,其中包含您希望用户下载文件的文件名。像这样......
Content-Disposition: attachment; filename="fname.ext"
答案 2 :(得分:-1)
这有效:
def sendfile(path)
headers["Location"] = path
redirect_to(path)
end