gpt4 book ai didi

ruby-on-rails - 在 Rails 3 中发送动态创建的文件作为下载

转载 作者:行者123 更新时间:2023-12-04 06:26:44 25 4
gpt4 key购买 nike

我有一个 Rails 3 应用程序,当在客户端上单击下载链接时,会向服务器发出 ajax 请求以动态生成文件并将其发回。服务器告诉我正在发送文件:

发送数据test.csv(1.4ms)

但是浏览器没有提示我下载文件。当我检查 ajax 请求时,我看到响应中返回的数据。任何让浏览器提示用户下载文件的帮助都将不胜感激。下面是我的代码:

这是我的 Controller :

def generate_file
list = List.find(params[:id])
file = ''
list.contacts.all.each do |contact|
file << contact.firstname + ',' + contact.lastname + '\n'
end
send_data file, :filename => list.name + '.csv', :type => 'text/csv'
end

这是我的客户端代码:

$j('.download').click(function() {
var id = $j(this).attr("id");
$j.ajax({
type: "POST",
url: "/lists/" + id + "/generate_file"
});
});

这是我的 routes.rb

resources :contacts
resources :lists do
member do
post 'generate_file'
end
end

最佳答案

通过 ajax 发送文件并不像您希望的那样容易。除非出于某种原因使用 ajax 很重要,否则最好不要使用 ajax 而只使用常规 HTTP 请求。

这里有一个类似问题的很好答案:How do you invoke a file download with link_to_remote in rails?

关于ruby-on-rails - 在 Rails 3 中发送动态创建的文件作为下载,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5436771/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com