JQueryAjax使用SpringMVC中MultipartFile进行文件上传的整合

15 篇文章 0 订阅

对于一个带有文件上传的表单,后台使用springMVC封装的MultipartFile file接收文件,并且需要使用异步提交,并返回相应的提示信息

在这种情况下,我最开始使用了好几种方法

第一种:普通的JQUERY的AJAX,但是后台一旦使用MultipartFile 这个类接收就会报request的一个异常BUG,这种方法不行

第二种:使用JQUERY的普通表单提交,也就是submit,后台使用springMVC,这种情况可以实现,但是后台必须跳转页面,也就是无法异步提交

于是产生了第三种方法

第三种:使用JQUERY的form插件,即jquery.form.js这个插件,然后使用插件的ajaxSubmit方法;代码如下

前端:

$("#pageForm").ajaxSubmit({
				type: "POST",
				url:"你的action.html",
				dataType: "json",
			    success: function(data){
			     	if(data.msg=='SUCCESS'){
			     		alert(success);
			   		 }
			    	else{
			    		alert(data.msg);
			    	}
				}
			});
后端:

	@RequestMapping("/insertGoodsBrand")
	public void insertGoodsBrand(
			HttpServletRequest request,
			@RequestParam(value = "file", required = false) MultipartFile file,HttpServletResponse response,
			GoodsBrand goodsBrand){
		JSONObject obj = new JSONObject();
		PrintWriter out = null;
		try {
			out = response.getWriter();
			String path = request.getSession().getServletContext().getRealPath(
					"upload\\goods\\brand");
			String fileName = file.getOriginalFilename();
			String saveFileName = Common.getNowCorrect2Second() + "."
					+ fileName.substring(fileName.lastIndexOf(".") + 1);
			File targetFile = new File(path, saveFileName);
			if (!targetFile.exists()) {
				targetFile.mkdirs();
			}
			String msg = "";
			file.transferTo(targetFile);
				msg = backGoodsBrandBus.insertGoodsBrand(goodsBrand, saveFileName);
			if (msg.equals("SUCCESS")) {
				obj.put("msg", msg);
			} else {
				obj.put("msg", msg);
			}
			out.print(obj);
		} catch (Exception e) {
			e.printStackTrace();
		}
		finally{
			out.close();
		}
	}
这样既能解决文件传值,又能异步提交了

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值