rails链接函数文件下载
rails link_to_function file download
在rails 2.3.11应用程序中,我正在尝试注册仅对登录用户可用的文件下载。当他们点击链接下载文件(这是指向公共目录中文件的直接链接)时,我希望rails应用程序调用一个方法。
我想我应该使用link_to_function,我可以在rails中编写javascript/方法来记录下载。
我不知道在调用该方法后,如何让文件继续下载。在方法调用(即在后台)之后,应该开始下载文件。
有什么想法吗?
您可能想得太多了,不需要Javascript。你想要的是一个下载操作的链接,它依次注册下载,然后流式传输回文件。除非您有一个不希望Rails处理的非常大的文件,否则这应该可以正常工作。
从控制器发回二进制文件的示例:
send_data(binary_data, :type => 'application/pdf', :filename => 'myfile.pdf', :disposition => 'inline' )
甚至更好:
render :content_type => 'application/octet-stream', :text => Proc.new { |response, output|
# do something that reads data and writes it to output
}
Abdullah Jibaly的答案是完美的,它的优点是不需要Javascript。
我最终实现了一个jQuery javascript解决方案,使文件下载与以前一样。
在我看来,添加下载类的链接对js的工作很重要:
<%= link_to document.type.value, document.scan.url, :popup => true, :class => "download" %>
添加的javascript,我添加了一个property_id作为要发布的数据,因为我在控制器中需要这个值:
<script type="text/javascript">
$(document).ready(function() {
$(".download").click(function(event){
$.post("/ajax/property_interested_user", { property_id: $("#property_id").html() });
});
});
</script>
相关文章:
- 为什么jQuery文件的函数中有两个参数,但只接收一个参数
- asp.net网站文件下载历史记录
- Firefox,如何提交表单触发文件下载,但停留在网页上
- 使用Jasmine捕获传递给不同JavaScript文件中函数的参数
- 从另一个文件访问函数的返回值
- 可以't在Wordpress中从HTML中的JS文件调用函数
- 从HTML中的外部JS文件调用函数
- Interent Explorer中的数据URI文件下载
- 从require()'d文件访问函数
- 更好的写法 NodeJS 读/写文件的函数
- 将页面上的文本替换为 jQuery 并提示文件下载
- JavaScript文件下载
- 是否可以触发文件下载到用户的浏览器
- Javascript JSON 到 Excel 文件下载
- 使用Javascript将多个文件下载为zip文件或文件夹
- 巴比伦JS-场景从本地文件下载
- JQuery启动文件下载,然后运行一个函数
- Javascript函数,可以将包含用户输入的文件下载给用户
- 试图从UploadPanel中的按钮下载文件.JS函数InitializeRequest不会被触发
- rails链接函数文件下载