ajax使用formdata 提交excel文件表单到rails解析
.modal-body
.container-fluid
.row
.col-md-12
1.下载模板文件
= link_to '模板文件'
.row
.col-md-12
= form_tag '', :id => "my-form" do
.input-group
%span.input-group-btn
%button#fake-file-button-browse.btn.btn-default{:type => "button"}
%span.glyphicon.glyphicon-file
= file_field_tag :category_file, :id => "files-input-upload", :style => "display:none"
%input#fake-file-input-name.form-control{:disabled => "disabled", :type => "text"}/
%span.input-group-btn
%button#fake-file-button-upload.btn.btn-default{:disabled => "disabled", :type => "button"}
%span.glyphicon.glyphicon-upload
使用formdata得到完整表单,将formdata作为data值传递给后台,就如同点击submit提交数据一样。注意此处的url和type对应的值不能直接写到表单里面,而应写在ajax的配置参数中
$('#fake-file-button-upload').click(function() {
var form = new FormData(document.getElementById('my-form'));
$.ajax({
url: "/tax_categories/get_category",
type: "POST",
data: form,
dataType: "json",
processData: false, // 不处理数据
contentType: false, //要加
success: function(data) {
console.log(data);
if (data.result == "error") {
alert(data.result);
} else {
console.log("save success");
window.location = "/tax_categories"
}
}
});
});
使用creek解析xml
require 'creek'
def get_category
flag = true
begin
file = params[:category_file]
creek = Creek::Book.new file.path
sheet = creek.sheets[0]
sheet.rows.each do |row|
puts row
end
rescue
flag = false
end
if flag
respond_to do |f|
f.json {
render :json => {:result => "success"}.to_json
}
end
else
respond_to do |f|
f.json {
render :json => {:result => "error"}.to_json
}
end
end
end
此处还有个比较二的问题,是发生了302重定向,刚开始controller中的代码是如下,在解析成功后想直接跳转,可是在ajax的请求下,产生的是302重定向,在浏览器中并不会显示跳转。所以采用在js中location定位到新的页面
if flag
redirect_to tax_categories_url
else
respond_to do |f|
f.json {
render :json => {:result => "error"}.to_json
}
end
end
ajax使用formdata 提交excel文件表单到rails解析的更多相关文章
- Ajax 使用formdata 实现 无刷新表单上传
FormData对象的作用就类似于这里的serialize()方法,不过FormData是浏览器原生的,且支持二进制文件 1.这里实现一个无刷新上传图片,成功后页面显示 点击button 触发隐藏的 ...
- Ajax发送FormData对象封装的表单数据
前端页面: <!doctype html> <html lang="en"> <head> <meta charset="UTF ...
- Java使用HTTP编程模拟多参数多文件表单信息的请求与处理
本文目的是提供Java环境下模拟浏览器页面提交多参数多文件表单请求以及解析请求的Demo代码.这里用Java提供的HttpURLConnection类做HTTP请求,再原始点可以直接使用socket. ...
- SpringMVC 完美解决PUT请求参数绑定问题(普通表单和文件表单)
一 解决方案 修改web.xml配置文件 将下面配置拷贝进去(在原有的web-app节点里面配置 其它配置不变) <!-- 处理PUT提交参数(只对基础表单生效) --> <filt ...
- Jquery serialize()提交多个表单数据
ajax提交多个表单数据: 先把不同的表单分别用serialize()函数,然后把序列化后的数据用+拼接提交给后台,具体例子如下 var data1 = $('#form1).serialize(); ...
- javaWeb中一个按钮提交两个表单
一个按钮提交两个表单,有时候会用到,一般会很容易想到使用 onclick="document.form1.submit();document.form2.submit();" 的方 ...
- 直接提交一个form表单后台返回一个新页面通过target属性可以放到iframe当中
问题描述: 我想提交一个form表单后台直接返回一个新页面,但是当前页面还不想被替换掉: 解决方案: 在页面中添加一个iframe将form表单的target属性设置为iframe的id这样的话返回的 ...
- Form表单 JSON Content-type解析
Form表单 JSON Content-type解析 1 表单Form概述 在Form表单中,参数一般有: action 表单提交的url method 提交方式:post get name 表单的属 ...
- HTML5新表单新功能解析
HTML5新增了很多属性功能.但是有兼容性问题,因为这些表单功能新增的.我这里做了一个简单的练习,方便参考.如果完全兼容的话,那我们写表单的时候就省了很多代码以及各种判断. <!DOCTYPE ...
随机推荐
- java继承机制
1 继承 关键字:extends java没有多重继承 实例 父类: package unit4; public class Base { public int publicVarofBase= ...
- K - Large Division 判断a是否是b的倍数。 a (-10^200 ≤ a ≤ 10^200) and b (|b| > 0, b fits into a 32 bit signed integer). 思路:取余;
/** 题目:K - Large Division 链接:https://vjudge.net/contest/154246#problem/K 题意:判断a是否是b的倍数. a (-10^200 ≤ ...
- ps -aux --sort -rss |head 列出进程拿物理内存占用排序 使用ps aux 查看系统进程时,第六列即 RSS列显示的就是进程使用的物理内存。
ps -a Select all processes -u userlist Select by effective user ID (EUID) or name. ...
- English 好的报纸
1. 高级阶段 China daily: ( 带有官方色彩 ) www.chinadaily.com.cn 2. econnomist ( 经济人报 ) www.econnomist.com
- svn版本库目录结构
该文是svn源代码分析系列文章服务端架构中的一篇,主要描述svn服务端版本库数据存储目录结构,并且对这些文件以及目录的作用进行简单分析.使用“svnmadin create”命令创建初始化版本库后 ...
- Photoshop脚本之储存图片
function saveEPS( doc, saveFile ) { var saveOptions = new EPSSaveOptions( ); saveOptions.encoding = ...
- 用于ARM上的FFT与IFFT源代码-C语言
/********************************************************************************* 程序名称:快速傅里叶变换(FFT) ...
- hdu5334(2015多校4)--Virtual Participation(构造)
题目链接:pid=5334">点击打开链接 题目大意:给出一个数字k,要求做出一个长度小于等于10^5的序列.该序列中不同样的连续子序列有k个. 构造啊,.,,,,一点辙都没有 使用连 ...
- Android-ViewPagerIndicator框架使用——TitlePageIndicator
前言:TitlePageIndicator这个就是效果比较好. 一:定义布局文件simple_titles: <LinearLayout xmlns:android="http://s ...
- PDO drivers no value in Windows
学习php编程遇到 Uncaught exception 'PDOException' with message 'could not find driver' 或者 Undefined class ...