【发布时间】:2012-06-18 14:32:16
【问题描述】:
美好的一天!我想下载自动生成的文件 qwerty.csv,但它只返回文本“12345”(没有文件)。你能帮帮我吗?
用户界面
<script type="text/javascript">
function getCsv() {
var ids = getSelectedRecordIds();
$.post('/payments/form_csv.csv', { ids: ids }, function(data) {});
}
</script>
控制器
def form_csv
csv_string = CSV.generate do |csv|
csv << ["12345"]
end
respond_to do |format|
format.csv {
send_data csv_string, :type => 'text/csv; charset=utf-8; header=present', :disposition => "attachment; filename=qwerty.csv", :filename => "qwerty.csv"
}
end
end
在控制台中
Started POST "/payments/form_csv.csv" for 127.0.0.1 at 2012-06-18 18:18:11 +0400
Processing by PaymentsController#form_csv as CSV
Parameters: {"ids"=>["18\n\t "]}
Rendered text template (0.0ms)
Sent data qwerty.csv (0.4ms)
Completed 200 OK in 2ms (Views: 0.4ms | ActiveRecord: 0.0ms)
但是没有文件提示...
【问题讨论】:
-
也许这只是您如何注册应用程序/MIME 类型的问题。当您在文件浏览器中单击 *.csv 文件时会发生什么? LibreOffice(或 Excel)会自动打开吗?未知/未注册的 txt MIME 类型可能始终显示在您的浏览器中。
-
>> 在文件浏览器中单击 *.csv 文件时会发生什么? LibreOffice(或 Excel)会自动打开吗?不幸的是,是的,Excel 自动打开它=(非常相似的主题(没有决定)-stackoverflow.com/questions/7597414/…
-
@AnDragFag 我猜是智能浏览器在浏览器上显示 CSV 数据的情况。设置这个并希望这有助于
config.action_dispatch.x_sendfile_header="X-Sendfile"
标签: ruby-on-rails ruby-on-rails-3 ruby-on-rails-3.1