标签:run inpu bind ouya color 分享 multi 上传文件 input
下面来写Controller层:
package com.ouyan.o2o.web.shopadmin; import java.io.File; import java.io.FileOutputStream; import java.io.IOException; import java.io.InputStream; import java.util.HashMap; import java.util.Map; import javax.servlet.http.HttpServletRequest; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMethod; import org.springframework.web.bind.annotation.ResponseBody; import org.springframework.web.multipart.MultipartHttpServletRequest; import org.springframework.web.multipart.commons.CommonsMultipartFile; import org.springframework.web.multipart.commons.CommonsMultipartResolver; import com.fasterxml.jackson.databind.ObjectMapper; import com.ouyan.o2o.dto.ShopExecution; import com.ouyan.o2o.entity.PersonInfo; import com.ouyan.o2o.entity.Shop; import com.ouyan.o2o.enums.ShopStateEnum; import com.ouyan.o2o.service.ShopService; import com.ouyan.o2o.util.HttpServletRequestUtil; import com.ouyan.o2o.util.PathUtil; import com.ouyan.o2o.util.imageUtil; @Controller @RequestMapping("/shopadmin") public class ShopManagementController { @Autowired private ShopService shopService; @RequestMapping(value = "/registershop", method = RequestMethod.POST) @ResponseBody public Map<String, Object> registerShop(HttpServletRequest request) { Map<String, Object> modelMap = new HashMap<String, Object>(); // 接受并转化相应参数 String shopStr = HttpServletRequestUtil.getString(request, "shopStr"); ObjectMapper mapper = new ObjectMapper(); Shop shop = null; try { shop = mapper.readValue(shopStr, Shop.class); } catch (Exception e) { modelMap.put("success", false); modelMap.put("errMsg", e.getMessage()); return modelMap; } CommonsMultipartFile shopImg = null; CommonsMultipartResolver commonsMultipartResolver = new CommonsMultipartResolver( request.getSession().getServletContext()); if (commonsMultipartResolver.isMultipart(request)) { MultipartHttpServletRequest multipartHttpServletRequest = (MultipartHttpServletRequest) request; shopImg = (CommonsMultipartFile) multipartHttpServletRequest.getFile("shopImg"); } else { modelMap.put("success", false); modelMap.put("errMsg", "上传文件不能为空"); return modelMap; } // 注册店铺 if (shop != null && shopImg != null) { PersonInfo owner = new PersonInfo(); owner.setUserId(1L); shop.setOwner(owner); File shopImgFile = new File(PathUtil.getImgBasePath() + imageUtil.getRandomFileName()); try { shopImgFile.createNewFile(); } catch (IOException e) { modelMap.put("success", false); modelMap.put("errMsg", e.getMessage()); return modelMap; } try { inputStreamToFile(shopImg.getInputStream(), shopImgFile); } catch (IOException e) { modelMap.put("success", false); modelMap.put("errMsg", e.getMessage()); return modelMap; } ShopExecution se = shopService.addShop(shop, shopImgFile); if(se.getState()==ShopStateEnum.CHECK.getState()){ modelMap.put("success", true); }else{ modelMap.put("success", false); modelMap.put("errMsg", se.getStateInfo()); } } else { modelMap.put("success", false); modelMap.put("errMsg", "请输入店铺信息"); return modelMap; } return modelMap; } private static void inputStreamToFile(InputStream ins, File file) { FileOutputStream os = null; try { os = new FileOutputStream(file); int bytesRead = 0; byte[] buffer = new byte[1024]; while ((bytesRead = ins.read(buffer)) != -1) { os.write(buffer, 0, bytesRead); } } catch (Exception e) { throw new RuntimeException("调用inputStreamToFile产生异常" + e.getMessage()); } finally { try { if (os != null) { os.close(); } if (ins != null) { ins.close(); } } catch (IOException e) { throw new RuntimeException("inputStreamToFile关闭io产生异常" + e.getMessage()); } } } }
标签:run inpu bind ouya color 分享 multi 上传文件 input
原文地址:http://www.cnblogs.com/XJJD/p/7688817.html