个人项目中遇到同时上传图片及文本到数据库中,网上查好多资料才解决,谨以此文记之。
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>