JAVA SSM整合上传图片进行新增
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
开发工具与关键技术:Spring Spring+MVC Mybatis
作者:李奕庚
撰写时间:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
SSM 《Spring Spring+MVC Mybatis》整合图片上传进行新增,好了直接进入主题
//新增店铺
@RequestMapping("/Insert")
public void Insert(HttpServletRequest request, HttpServletResponse response){
String name = null;
String clerk_name = null;
String telephone = null;
String city_level_id = null;
String prefecturelevel_city_id = null;
String address = null;
String postbox = null;
String inlineRadioOptions = null;
String storefront_src = null;
String image_name=null;
String remark=null;
String fileName=null;
String token=null;
try {
//赋值、上传图片
if(ServletFileUpload.isMultipartContent(request)){//判断是form表单是否是multipart/form-data
response.setContentType("text/html");
String parentDir = request.getServletContext().getRealPath("/upload/store");//绝对路径
FileItemFactory fileItemFactory = new DiskFileItemFactory();// 工厂
ServletFileUpload servletFileUpload = new ServletFileUpload(fileItemFactory);// 核心类
servletFileUpload.setHeaderEncoding("UTF-8");//设成你的编码格式
List<FileItem> list = servletFileUpload.parseRequest(request);
for (FileItem fileItem : list) {
if (fileItem.isFormField()) {// 是否为表单字段(普通表单元素)
if("name".equals(fileItem.getFieldName())){// 表单字段名称
name= fileItem.getString("UTF-8");// 表单字段值
}
if("clerk_name".equals(fileItem.getFieldName())){clerk_name= fileItem.getString("UTF-8");}
if("telephone".equals(fileItem.getFieldName())){telephone= fileItem.getString("UTF-8");}
if("city_level_id".equals(fileItem.getFieldName())){city_level_id= fileItem.getString("UTF-8");}
if("prefecturelevel_city_id".equals(fileItem.getFieldName())){prefecturelevel_city_id= fileItem.getString("UTF-8");}
if("address".equals(fileItem.getFieldName())){address= fileItem.getString("UTF-8");}
if("postbox".equals(fileItem.getFieldName())){postbox= fileItem.getString("UTF-8");}
if("inlineRadioOptions".equals(fileItem.getFieldName())){inlineRadioOptions= fileItem.getString("UTF-8");}
if("remark".equals(fileItem.getFieldName())){remark= fileItem.getString("UTF-8");}
if("token".equals(fileItem.getFieldName())){token= fileItem.getString("UTF-8");}
} else {
image_name=fileItem.getName();
if(Tools.isNotNull(image_name)){
fileName =System.currentTimeMillis()+"__"+ new File(fileItem.getName()).getName();//fileItem.getName();// 上传文件名
InputStream is = fileItem.getInputStream(); // 获得输入流,
//String filePath = parentDir + File.separator + fileName;//文件物理路径
storefront_src="http://127.0.0.1:8080/vispBeautyNstrument/upload/store/"+fileName;//店铺图片路径
File file = new File(parentDir, fileName);
if (!file.getParentFile().exists()) {
file.getParentFile().mkdirs();
}
FileOutputStream out = new FileOutputStream(file);
byte[] buf = new byte[1024];
int len = -1;
while ((len = is.read(buf)) != -1) {
out.write(buf, 0, len);
}
out.close();
is.close();
}
}
}
}
//session
String sessiontoken=(String) request.getSession().getAttribute("token");
if (token!=null && token.equals(sessiontoken)) {
//新增数据
if(Tools.isNotNull(image_name)){
if(Tools.isNotNull(name) && Tools.isNotNull(clerk_name) && Tools.isNotNull(telephone)
&& Tools.isNotNull(city_level_id) && Tools.isNotNull(prefecturelevel_city_id)
&& Tools.isNotNull(address) && Tools.isNotNull(postbox) && Tools.isNotNull(storefront_src)
&& Tools.isNotNull(remark)){
if(Tools.isTelephone(telephone) && Tools.isEmail(postbox)){
BStore store=new BStore();
StringBuffer strNum=new StringBuffer();
strNum.append((iStoreService.sum()+1));
store.setNum(strNum.toString());
store.setName(name);
StringBuffer strAddress = new StringBuffer();
SProject projectPo=iProjectService.findById(Integer.parseInt(city_level_id));
SProjectType projectTypePo=iProjectTypeService.findById(Integer.parseInt(prefecturelevel_city_id));
strAddress.append(projectPo.getName());
strAddress.append(projectTypePo.getName());
strAddress.append(address);
store.setAddress(strAddress.toString());
store.setJoiningTime(new Timestamp(System.currentTimeMillis()));//当前时间
store.setfStoreId(1);
store.setStorefrontSrc(storefront_src);
store.setRemark(remark);
store.setIsValid(inlineRadioOptions.equals("0") ? false:true);
store.setAreaId(Integer.parseInt(prefecturelevel_city_id));
int id=iStoreService.insertReturnId(store);
if(id!=0){
BClerk clerk=new BClerk();
clerk.setStoreId(store.getId());
clerk.setJobId(5);//店长
StringBuffer strCode=new StringBuffer();
strCode.append(strNum);
strCode.append("_");
strCode.append((iClerkService.sum()+1));
clerk.setCode(strCode.toString());
clerk.setName(clerk_name);
clerk.setSexid(0);
clerk.setTelephone(telephone);
clerk.setPostbox(postbox);
clerk.setPassword(MD5Tool.MD5Encrypt(telephone));
clerk.setRemark("无");
clerk.setIsValid(true);
boolean success = iClerkService.insert(clerk);
if (success) {
request.getSession().removeAttribute("token");//移除指令
request.getSession().setAttribute("strMsg", "新增成功!");
request.getRequestDispatcher("/store/storeManagement.do").forward(request, response);
}
}
}else{
request.setAttribute("error", 602);
request.getRequestDispatcher("/jsp/error.do").forward(request, response);
}
}else{
request.setAttribute("error", 601);
String realPath = request.getServletContext().getRealPath("/"); //获取的是项目的绝对路径
File file1=new File(realPath+"upload/store/"+fileName);//店铺图片物理路径
if(file1.exists()){file1.delete();}//是否存在该文件//删除上传的图片
request.getRequestDispatcher("/jsp/error.do").forward(request, response);
}
}else{
request.setAttribute("error", 600);
request.getRequestDispatcher("/jsp/error.do").forward(request, response);
}
}else{
request.getSession().setAttribute("strMsg", "禁止重复提交!");
request.getRequestDispatcher("/jsp/store/storeManagement.do").forward(request, response);
}
} catch (FileUploadException e) {
e.printStackTrace();
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
} catch (ServletException e) {
e.printStackTrace();
}
}
下面是运行效果图: