个人项目中遇到同时上传图片及文本到数据库中,网上查好多资料才解决,谨以此文记之。
HTML代码:
<form class="form-inline" id="zc_form" action="save.do" method="post" enctype="multipart/form-data">
<div class="control-group">
<label class="control-label" for="input01">类型</label>
<div class="controls">
<input type="text" name="type" placeholder="请输入类型" class="input-xlarge">
</div>
</div>
<div class="control-group">
<label class="control-label">上传照片</label>
<!-- File Upload -->
<div class="controls">
<input class="input-file" name="pic" id="fileInput" type="file">
</div>
</div>
<div class="control-group">
<label class="control-label"></label>
<!-- Button -->
<div class="controls">
<button class="btn btn-success">提交</button>
</div>
</div>
</form>
Controller:
@RequestMapping(value = "/save")
public ModelAndView saveU(@RequestParam(required = false) MultipartFile file,HttpServletRequest httpRequest) throws Exception {
PageData pd = new PageData();//PageData为项目中一个工具类,里面封装一个map集合
pd = this.getPageData();
CommonsMultipartResolver commonsMultipartResolver = new CommonsMultipartResolver(httpRequest.getSession().getServletContext());
MultipartHttpServletRequest multipartRequest =(MultipartHttpServletRequest) httpRequest;
pd.put("type", multipartRequest.getParameter("type"));//文本
MultipartFile owner_id2 = multipartRequest.getFile("pic");//图片
//转换图片格式 :MultipartFile --> byte
pd.put("pic", org_certificate.getBytes());
int i=tdtService.saveU(pd);
if(j>0) {
System.out.println("yes");
}
}
数据库为mysql,mapper.xml:
<insert id="saveE" parameterType="pd">
insert into T_ENTERPRISE (
type,
pic
) values (
#{type},
#{pic},
)
</insert>