当前位置: 首页 > 面试题库 >

如何使用Rails send_data触发来自AJAX帖子的下载

邹誉
2023-03-14
问题内容

我试图用来send_data返回一个PNG图像作为对ajax发布请求的响应。如何让浏览器触发成功回调上的下载?

细节

我正在使用生成一个大型的base64图像canvas.toDataURL(),然后将其发布到Rails(v3.2.6)。Rails将其解码为二进制PNG,然后将图像发送回客户端。

我也尝试过,send_file但是有同样的问题。

其他选择

  1. 下载图片客户端 我们无法这样做,因为(1)Safari在大型base64 URL上崩溃,并且(2)Safari尚不支持锚标签的download属性,我需要指定下载的图片文件名。

  2. 使用a$.get代替$.post我们不能这样做,因为我们需要canvas.toDataURL()将请求连同请求一起发送到服务器。GET请求URI有大小限制。


问题答案:

在控制器中创建函数

def ajax_download
  send_file "path_to_file/" + params[:file]
end

然后在控制器动作中

respond_to do |format|
  @java_url = "/home/ajax_download?file=#{file_name}"
  format.js {render :partial => "downloadFile"}
end

并使用_downloadFile.js.erb在视图文件夹中创建部分名称,并编写此行

window.location.href = "<%=@java_url %>"


 类似资料:
  • 问题内容: 我想在网站上发送带有Java的帖子。我想出了这个办法,但是我不下一步该怎么做,或者这是否是正确的方法。 邮寄表格如下所示。 问题答案: 您可以编写类似于以下代码:

  • 问题内容: 我有这个json数据: 使用php我如何发送此发布请求? 问题答案: 不 使用任何外部依赖项或库: $ response 是一个对象。可以像往常一样访问属性,例如 $ response- > … 其中 $ data 是包含 数据 的数组: 警告 :如果在php.ini 中将 allow_url_fopen 设置设置为 Off ,则此方法将无效。

  • 问题内容: 我已经查询了用户帖子(显然是嵌套资源),并且有一长串来自不同用户的帖子。我希望用户能够单击每个帖子旁边的小星星,以通过ajax收藏该特定帖子。关于如何实现这一目标的任何建议?我遇到的麻烦是一页上有多个收藏夹按钮,偏爱多个帖子。 这有点像Gmail在收件箱中使用收藏的电子邮件那样。其实就是这样 问题答案: 首先,您需要设置数据库来处理此问题,就我个人而言,我将使用has_many:thr

  • 我有这样的输入类型文本 我有这样的ajax post函数。 我想知道如何将值从< code>id="test"发送到我的ajax帖子?

  • 问题内容: 我试图让一个TextBox在每次击键时触发它的onTextChanged事件,而不是仅在失去焦点时才触发。我以为添加AsyncPostBackTrigger可以做到这一点,但仍然无法正常工作。我要做什么甚至有可能吗?代码如下: 问题答案: 使用javascript引发文本框控件时,您需要调用该函数。 但是,由于您的文本框位于更新面板中,因此,每当用户按下某个键时,该文本框都会重新呈现,

  • 你好,我想找到用户所做的帖子... 我使用JWT令牌执行请求: 这是我的创建函数: 这是我的函数,我想在其中获取用户发表的帖子: 这是我为博文准备的模型: 每次我做一个请求它有这个错误: 我的生成令牌: