1.使用form表单进行传递,enctype="multipart/form-data"必须加上。
例如:<form id="exportForm" method="post" enctype="multipart/form-data">
同时要配置 spring-mcv.xml,添加如下bean:
<bean id="multipartResolver"
class="org.springframework.web.multipart.commons.CommonsMultipartResolver">
<!-- 上传文件大小上限,单位为字节(10MB) -->
<property name="maxUploadSize">
<value>10485760</value>
</property>
<!-- 请求的编码格式,必须和jSP的pageEncoding属性一致,以便正确读取表单的内容,默认为ISO-8859-1 -->
<property name="defaultEncoding">
<value>UTF-8</value>
</property>
</bean>
后台controller接收方法
public Boolean upLoadFile(@RequestParam("txtFile") MultipartFile upLoadfile){
String lineTxt = null;
InputStream inputStream = upLoadfile.getInputStream();//获得字节流
InputStreamReader inputStreamReader = new InputStreamReader(inputStream);//获得字符流
BufferedReader bufferedReader = new BufferedReader(inputStreamReader);//缓存数据用于读取
while((lineTxt = bufferedReader.readLine())!= null){
String[] s = lineTxt.split(",");//","是你文本中字符与字符之间的分隔符号,可以替换,
//接下来就可以对数组s进行操作了。
}
}
其中“txtFile”是前端表单中input的name的名称,@RequestParam注解进行参数绑定,若还需要用form表单传递其他的值,可以再from中添加隐藏的input进行传值。提交form表单时这些参数会一起提交。
2.接下来介绍form表单的ajax式提交
$("#表单的id").form('submit',{//AJAX方式的提交表单
url:url,
onSubmit : function() { //提交一个有效并且避免重复提交的表单
var isValid = $(this).form('validate');
return isValid; // 返回false终止表单提交
},
success : function(result) {
},
error: function() {
alert("error");
}
});
这样后端controller就可以接收到表单了前提是url要写对。
附上一个我写的小例子:
前端:
<div id="turnoutDialog" closed ="true">
<form id="exportForm" method="post" style="padding:10px 10px 10px 10px;"enctype="multipart/form-data">
<div style="width:300px;padding:30px">
<div style="margin-bottom:20px">
<div>选择上传的文件:</div>
<input id="backupFile" name="backupFile" class="easyui-textbox" style="width:200px" placeholder="请输入备份文件的地址">
<input id="tableName1" name="tableName1" type="hidden"/>
<input id="path1" name="path1" type="hidden"/>
</div>
</div>
</form>
</div>
js:
$('#turnoutDialog').dialog({
width: 300,
height: 200,
title: '数据备份转出',
modal: true,
buttons: [{
text: '确定',
plain: true,
iconCls: 'icon-ok',
handler: function () { //点击确定按钮提交表单的方法
var nodes = $('#tt').tree('getChecked');
var tablename = '';
var path;
for (var i = 0; i < nodes.length; i++) {
if (tablename != '') tablename += ',';
tablename += nodes[i].text;
}
path = document.getElementById("backupFile").value;
document.getElementById("path1").value = path;
document.getElementById("tableName1").value = tablename;//用隐藏的input标签进行传值
$.messager.progress({
text: '正在上传中...',
});
$("#exportForm").form('submit',{//AJAX方式的提交表单
url:getRealPath()+'/DataManagement/upLoadFile',
onSubmit : function() { //提交一个有效并且避免重复提交的表单
var isValid = $(this).form('validate');
if (!isValid){
$.messager.progress('close'); // 如果表单是无效的则隐藏进度条
}
return isValid; // 返回false终止表单提交
},
success : function(result) {
$.messager.progress('close');
if(result=='true'){
$.messager.show({
title: '提示',
msg: "转入成功!",
});
}else {
$.messager.alert({
title:'警告',
msg:"转入失败!",
});
}
}
});
$('#turnintoDialog').dialog('close');
}
}, {
text: '取消',
plain: true,
iconCls: 'icon-cancel',
handler: function () {
$('#turnintoDialog').dialog('close');
}
}],
});
};
controller:
public Boolean upLoadFile(@RequestParam("path1")String path,@RequestParam("tableName1")String tablename){
//对数据的操作;
}