ssm上传文件
一、准备插件、环境:
ssm框架:applicationcontext.xml
<bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver">
<property name="defaultEncoding" value="UTF-8" />
<property name="maxUploadSize" value="10240000" />
<!-- 设置在文件上传时允许写到内存中的最大值,以字节为单位计算,默认是10240 -->
<!-- 但是经实验,上传文件大小若小于此参数,则不会生成临时文件,故改为2048 -->
<property name="maxInMemorySize" value="2048" />
</bean>
js插件:jquery.form.js
二、代码
- html代码
这里写代码片
<div class="form-group">
<label class="col-sm-3 control-label">商户Logo:</label>
<div class="col-sm-9">
<input type="file" class="form-control" id="logoImg_form" name="logoImg1"/>
</div>
</div>
- ajax代码(利用jquery.form.js封装的ajax,不用管文件,插件会自动处理)
$("#cust4Group_form").ajaxSubmit({
url:url,
enctype: 'multipart/form-data',
type:'post',
data:JSON.stringify(param),
dataType:'json',
contentType: "application/json;charset=utf-8",
success:function(data){
}
});
- controller代码
@RequestMapping(value = "/saveCust",method = {RequestMethod.POST})
public Map<String,Object> saveCust(HttpServletRequest request,CustInfo custInfo,@RequestParam("logoImg") MultipartFile logoImg) {
......
}
- MultipartFile对象处理(转换为File对象)
// 获得原始文件名
String logoImgName = logoImg.getOriginalFilename();
String showImgName = showImg.getOriginalFilename();
//MultipartFile转换未file格式 (转换格式)
CommonsMultipartFile logoImgCMF = (CommonsMultipartFile)logoImg;
CommonsMultipartFile showImgCMF = (CommonsMultipartFile)showImg;
DiskFileItem logoImgDFI = (DiskFileItem) logoImgCMF.getFileItem();
DiskFileItem showImgDFI = (DiskFileItem) showImgCMF.getFileItem();
File logoImgFile = logoImgDFI.getStoreLocation();
File showImgFile = showImgDFI.getStoreLocation();
5.结束语:得到file对象后,可进行区域操作,就不做演示了