使用ajaxFileUpload向后台传文件

一.要实现的功能:
1.点击上传按钮,弹出文件选择框

2.选择文件后,文件传至后台

3.后台文件接收(一般传至后台可以解析,保存等,这里暂不考虑,只讨论后台接收到文件为止)。

二.实现思路以及代码:
1.点击上传按钮,弹出文件选择框

首先,我们需要一个按钮

点击上传
其次,为按钮绑定点击事件,我们需要的是点击之后打开文件选择框,这里可以走个捷径,就是触发一个类型为file的input标签click事件。

这里加一个隐藏的input(这里通过accept设置只能接收excel格式的文件)

<input id="fileInput" name="fileInput" type="file" accept="application/vnd.ms-excel,application/vnd.openxmlformats-officedocument.spreadsheetml.sheet" style="display:none">

给按钮添加点击事件,触发input的点击事件打开文件选择框。

	   $('#uploadButton').on("click",function(){
	   	document.getElementById("fileInput").click();	   
	   });

选择好文件后,会自动触发输入框的onchange()事件,onchange()后进行文件向后台传递的操作。

input输入框注册onchange()事件:

	$("#fileInput").attr("onchange","submitFile()");	

这里调用了submitFile()方法(见2)

2.选择文件后,文件传至后台

function submitImportFile(){
 	$.ajaxFileUpload({
		url:"getUploadExcelFile",
		fileElementId:"fileInput",
		//data:{inputFile:"fileInput"},这是input的name字段,我后台写死了
		secureuri: false,
		dataType: 'JSON',
		success:function(result){
/**do something**/
}
});
}

其中:

url即后台接收请求的url ;

fileElementId为上传文件的那个input框的id;

注意,此处用了ajaxFileUpload,需要引入对应的文件。链接我稍后上传。注意ajaxfileuploadjs里面个别方法我做了修改,主要是 uploadHttpData方法,如果你的运行出现问题,不妨看下那里的代码是否符合你的需求。

3.后台文件接收

需要引入两个jar包,我使用的maven管理,在pom.xml引入以下几句话即可:

@RequestMapping("getUploadExcelFile")
@ResponseBody
	public Object importExcel(MultipartHttpServletRequest request) {
            List<Map<String,Object>> rowList = new ArrayList<Map<String,Object>>();		
			String inputFile = "fileInput";//文件input框的name属性
			CommonsMultipartFile file = (CommonsMultipartFile) request.getFile(inputFile);
	     /*do something*/
	}

controller:

@RequestMapping("getUploadExcelFile")
@ResponseBody
	public Object importExcel(MultipartHttpServletRequest request) {
            List<Map<String,Object>> rowList = new ArrayList<Map<String,Object>>();		
			String inputFile = "fileInput";//文件input框的name属性
			CommonsMultipartFile file = (CommonsMultipartFile) request.getFile(inputFile);
	     /*do something*/
	}

至此,我们后台就获得上传的File文件,后续根据需求,对获得的文件进行操作即可~

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值