Form表单提交文件和参数

该博客介绍了如何通过HTML Form表单和Ajax同时提交文件与普通参数。前端使用FormData对象来封装文件和表单数据,通过jQuery的serializeObject方法将表单数据转换为JSON。在Ajax请求中,设置contentType和processData为false,并以multipart/form-data为contentType。后端通过@RequestParam注解接收文件和请求参数,解析并打印出来。

form表单同时提交文件和参数

1.说明

项目中使用form表单配合ajax同时提交文件和其他的参数,具体实现请看代码

2.前端代码

1.form表单部分
前台提交的是方式是form表单方式,提交内容包括普通的参数和文件

    <form action="" class="form-horizontal " id="equipmentTypeform" enctype=”	multipart/form-data”/>
            <input type="text" class="form-control" id="manufacturer" name="manufacturer">
   			<input type="text" class="form-control" maxlength="20" id="equipmentTypeNm" name="equipmentTypeNm" placeholder="请输入设备类别名称">
            <a href="javascript:fileChange();"  data-item="import" class="btn btn-primary btn-xs m-5"><i class="fa fa-eye"></i>导入</a><span id="importName"></span>
			<input type="file" id="fielUpload" name="file" style="display: none" onchange="importDfFile()" />    
            </from>

2.ajax

	var formData = new FormData(); //需要用到formData 
 		formData.append('file',$("#fielUpload")[0].files[0]); //添加选择的文件 key值为file
 		//把from表单的参数序列化 转换成json key值为 equipmentTypeForm
		formData.append('equipmentTypeForm',JSON.stringify($('#equipmentTypeform').serializeObject())) 
 		$.ajax({
 	 		type : "post",
 	 		url : "aaa.ajax",//自己的接口地址
 	 		data :formData,
 	 		dataType : "json",
 			 cache: false,
 		     async:false,
 		     processData: false,
 		     contentType: false,//必须添加 
 	 		success : function(data) {
 	 			if(data.success){
 	 				//成功之后执行的代码
 	 			}else{
 	 				//失败之后的代码
 	 			}
 	 		}
 	 	});

3.后端代码

	@ResponseBody
	@RequestMapping(value = "/aaa.ajax",method = RequestMethod.POST)
	public String save(@RequestParam(value="file") MultipartFile file,HttpServletRequest reuqest) {
	//拿到json 转换成我们需要的对象
		 EquipmentTypeForm equipmentTypeForm = JSONObject.parseObject(reuqest.getParameter("equipmentTypeForm"), EquipmentTypeForm.class);
		 System.out.println();
		 System.out.println(file);
		 }
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值