ajax异步无法返回下载文件
可以通过添加from表单隐藏域的方式实现。
另外也想过直接js调用excell插件来生成文件学艺不精放弃了。
Require:
$(".feedback.button").click(function(){
var form = $("<form>");
form.attr('style', 'display:none');
form.attr('target', '');
form.attr('method', 'post');
form.attr('action', '<%= download_feedback_crm_products_path%>');
var input1 = $('<input>');
input1.attr('type', 'hidden');
input1.attr('name', 'item');
input1.attr('value', "<%= CGI.escape(@result[:data].to_json) %>");
$('body').append(form);
form.append(input1);
form.submit();
form.remove();
});
Action:
# 下载sku 反馈信息
def download_feedback
result = CGI.unescape(params[:item])
data = JSON.parse(result)
file = Spreadsheet::Workbook.new
list = file.create_worksheet :name => "test"
list.row(0).concat ["CAS No.", "Product Name", "Assay/Purity", "In Stock (yes/no)", "Note","Result"]
data.each_with_index { |report, i|
list.row(i+1).concat report.values
}
xls_report = StringIO.new
file.write xls_report
send_data xls_report.string, :type => 'text/xls', :filename => "wait_shipments.xls"
end
分享到:
相关推荐
总结来说,这个主题涵盖了Java的文件I/O,jar包操作,Excel文件的处理(如使用Apache POI),前端Ajax提交表单,以及后端接收并处理请求。理解这些知识点对于开发涉及数据导入导出和前后端交互的Java应用至关重要。...
在上传过程中,前端通常会通过HTML表单或者利用Ajax提交文件到服务器,服务器端的Controller接收文件流,存储在服务器上,并返回一个标识文件的唯一ID。在下载时,Controller根据这个ID找到对应的文件,设置响应头以...
本篇内容将探讨如何原生JavaScript封装ajax方法,以支持不同类型数据(包括JSON、字符串和Excel文件)的上传和提交。 ###ajax基础 ajax技术允许网页在不重新加载整个页面的情况下,与服务器交换数据并更新部分网页...
2. 采用jquery.form.js实现ajaxForm提交表单或上传文件到服务器。 3. 在struts2的Action通过2种不同的实现方法返回json格式的字符串。 4. 针对商品实现简单无刷新上传与下载 4. 批量导入数据采用的是导入test文件夹...
在数据分析应用中,可以利用JSON数据进行过滤、排序或计算。对于动态生成的表格,`tabletojson`还能帮助用户导出数据,提供CSV或Excel格式的下载选项。 `tabletojson`库的另一个优点是其可扩展性。它允许开发者...
在jQuery的Ajax请求中,我们可以通过dataType: 'blob'来处理二进制流数据,然后创建一个Blob对象,最后利用URL.createObjectURL()生成一个临时的URL,创建一个隐藏的a标签,设置其href属性为这个URL,模拟点击下载。...
`dataType`指定了预期的服务器响应类型,这里设置为`'json'`,意味着服务器应返回JSON格式的数据。`success`和`error`回调函数分别处理文件上传成功或失败的情况。 服务器端(例如PHP)需要接收并处理上传的文件。...
通过Ajax,我们可以向服务器发送请求,处理数据变化,然后将更新后的表格数据返回给前端,用DOM更新表格。 #### 示例代码: ```javascript // 创建XMLHttpRequest对象 var xhr = new XMLHttpRequest(); // 设置...
1. **文件上传**:在ExtJS的前端,创建一个文件上传组件,用户选择Excel文件后,通过Ajax提交到服务器。 2. **接收入口**:后端服务器接收到文件,将其保存到临时目录或者内存中。 3. **读取数据**:使用Apache POI...
Ajax的核心在于通过JavaScript向服务器发送异步请求,获取或更新数据,然后在客户端更新DOM(文档对象模型)以改变网页内容。这避免了传统方式下因页面刷新导致的用户体验中断。在本案例中,Ajax技术被用来实现实时...
在JSP页面上,我们可以使用HTML5的`<input type="file">`标签来创建一个文件选择器,并通过AJAX或者传统表单提交方式将文件上传到后端。解析后的结果可以展示在另一个JSP页面上,或者直接在当前页面以JSON格式显示。...
接口文档在软件开发中起着至关重要的作用,它定义了不同系统或组件之间的通信规则,确保数据能够准确、高效地传递。以下是一个详尽的接口文档模板及其关键知识点的解析: 1. **接口文档的基本结构** - **接口名称*...
在前端开发中,有时我们需要将数据导出为Excel(xlsx)文件,以便用户可以下载、存储或进一步处理。"前端导出xlsx文件展示到页面-master.zip" 是一个项目,它展示了如何在JavaScript环境中实现这个功能。这个项目的...
3. 数据转换:将二进制数据转换为可以被解析的格式,如CSV或JSON,这通常需要用到第三方库,如`xlsx`库,它能处理Excel文件的各种格式。 4. 提交数据:将转换后的数据通过Ajax发送到服务器端,通常是POST请求,携带...
在Java编程中,将Excel数据导入到程序中通常涉及到文件操作、数据解析和可能的Web交互。本主题主要关注如何使用JavaScript(通过`ajaxfileupload.js`)在前端处理文件上传,以及在后端利用Java的`poi.jar`库解析...
当用户提交数据时,前端发送Ajax请求,后端接收到请求后进行数据处理,然后返回结果。 6. **样式与布局**: `css`文件用于定义Handsontable的样式和布局。可以通过修改或扩展Handsontable默认的CSS类来调整表格的...
1. **视图(View)**:在MVC的HTML视图中,我们可以使用HTML表单元素来创建文件选择控件,并通过AJAX提交文件。 ```html 上传 ``` 2. **脚本(Script)**:使用jQuery或其他JavaScript库,监听按钮点击...
这个工具的主要功能是读取Excel文件中的数据,并自动填充到网页查询表单中,从而自动化查询过程,减少手动输入的工作量。下面将详细介绍这个工具涉及的相关知识点。 一、Excel数据处理 1. 数据读取:工具首先需要...
只需配置JSON数据,就能实现文件上传的模拟响应。 三、示例代码: 在提供的文件列表中,`uploader.js`、`uploader_old.js`和`demo.js`可能包含与文件上传相关的代码。例如,`uploader.js`可能是新的文件上传组件,...