SEND_FILE/SEND_DATA未发送要下载的文件 [英] send_file/send_data not sending file for downloading

查看:27
本文介绍了SEND_FILE/SEND_DATA未发送要下载的文件的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我使用的是Rails 3.2.22.4和Ruby 2.2.4。我正在测试SEND_FILE功能。我在服务器日志中收到"发送的文件",但在浏览器中看不到它正在下载。单击"保存"按钮将调用此操作。

def save_trunk_logs
  device_id = params['device_id']
  trunk_name = params['trunk_name'] ||= "test"
  data =""
  file = "#{trunk_name}.txt"
  trunk_logs = TrunkStatusLog.select([:LogType, :LogMessage, :EpochLoggedAtTime]).where(DeviceID: device_id)
  File.open(file, "w+") do |aFile|
    aFile.write("Trunk Name : #{trunk_name}
")
    aFile.write("*"*100)
    aFile.write("
")
    aFile.write("Time Stamp"+"	"+"Log Message
")
    trunk_logs.each do |msg|
      data =format_log_messages msg
      aFile.write("#{data}
")
    end
  end
  send_file file, :type => 'text/plain; charset=UTF-8', :disposition => 'attachment'
end

此操作由Button_To Click事件调用。

$("input[value='Download']").on('click', function () {
    $.ajax({
        type: "POST",
        url: "/dm/trunk_test_tools/save_trunk_logs?device_id="+selectedTrunkDeviceId+"&trunk_name="+selectedTrunkDeviceName,
       }
    })
});

每次我点击Download(下载)按钮,就会发出2个呼叫。服务器端日志粘贴在下面

Started POST "/X/Y/save_trunk_logs?device_id=9&trunk_name=SIP_1" for      10.198.2.208 at 2016-10-24 12:58:58 +0530
Processing by ABCController#save_trunk_logs as */*
Parameters: {"device_id"=>"9", "trunk_name"=>"SIP_1"}
Sent file SIP_1.txt (0.0ms)
Completed 200 OK in 98.0ms (ActiveRecord: 62.0ms)

Started POST "/X/Y/save_trunk_logs" for 10.198.2.208 at 2016-10-24 12:58:59 +0530
Processing by TrunkTestToolsController#save_trunk_logs as HTML
Parameters: {"authenticity_token"=>"3HSxduOUwccwo="}
sent file test.txt (0.0ms)
Completed 200 OK in 17.0ms (ActiveRecord: 3.0ms)

我不明白为什么要打第二个电话,它是从哪里打来的。在第一次服务器调用中,它说文件已发送,但没有下载。在第二呼叫中,发送和下载文件。但这是没有用的。参数不正确。我没有作为参数发送身份验证令牌。(跳过实际数据查询。)

如有任何帮助,我们将不胜感激。 提前谢谢。

推荐答案

我不知道此方法为什么有效。但符合我的目的。

$("#btn_id").on('click', function () {
    window.location = ypur api url;
});

谢谢,

Ajith

这篇关于SEND_FILE/SEND_DATA未发送要下载的文件的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆