图片上传代码-旧的实现方式,项目中已删除,发表做备用
2015-03-17 21:21
573 查看
项目中的图片上传,经过了3个阶段。
1.实现单个图片的上传。
2.实现多个图片的上传。
为了兼容和更多的适应性,统一采用多个图片上传的接口。
3.简化多个图片的上传。
前端代码和后端Controller代码,都做到复用。
下面的代码是,单个图片和多个图片的上传。
前端图片上传用的是WebUploader
1.实现单个图片的上传。
2.实现多个图片的上传。
为了兼容和更多的适应性,统一采用多个图片上传的接口。
3.简化多个图片的上传。
前端代码和后端Controller代码,都做到复用。
下面的代码是,单个图片和多个图片的上传。
前端图片上传用的是WebUploader
/** * 图片上传控制器 */ //@Controller @Deprecated public class ImageController extends BaseController { @Resource private PhotoService borrowerPhotoService; @Resource private GlobalConfig globalConfig; //@RequestMapping("/home/idCardImageUpload") @Deprecated public void idCardImageUpload(HttpServletRequest request, HttpServletResponse response) throws IllegalStateException, IOException { // 定义上传路径 String imagePath = globalConfig.getImageUploadPath(); JSONObject jsonObject = new JSONObject(); response.setContentType("text/html;charset=UTF-8"); // 创建一个通用的多部分解析器 CommonsMultipartResolver multipartResolver = new CommonsMultipartResolver( request.getSession().getServletContext()); // 判断 request 是否有文件上传,即多部分请求 boolean multipart = multipartResolver.isMultipart(request); if (!multipart) { jsonObject.put("success", false); jsonObject.put("fileName", ""); returnJsonObject(response, jsonObject); return; } // 转换成多部分request String finalFileName = CommonUtil.handleFileList(request, imagePath); jsonObject.put("success", true); jsonObject.put("fileName", finalFileName); returnJsonObject(response, jsonObject); } /** * 单独图片上传 */ @Deprecated @RequestMapping(value = "/idCardImageUpload2", method = RequestMethod.POST) public void uploadOneFile(HttpServletRequest request, Model model, HttpServletResponse response) { BaseUser u = getCurrentUser(); JSONObject jsonObj = new JSONObject(); response.setContentType("text/html;charset=UTF-8"); String imagePath = (String) BasePropertyConfigurer .getContextProperty("idCardImageUploadPath"); MultipartHttpServletRequest multipartRequest = (MultipartHttpServletRequest) request; CommonsMultipartFile commonsMultipartFile = (CommonsMultipartFile) multipartRequest .getFile("Filedata"); String fileName = commonsMultipartFile.getOriginalFilename(); model.addAttribute("fileName", fileName); // TODO String[] strs = fileName.split("\\."); if (strs.length != 2) {// 图片名称不能有'.' model.addAttribute("flag", false); model.addAttribute("message", "图片命名格式错误!"); jsonObj.put("success", false); returnJsonObject(response, jsonObj); return; } try { fileName = AES.Encrypt(strs[0], CommonUtil.uniqueFileName() .substring(1)) + "." + strs[1]; } catch (Exception e1) { e1.printStackTrace(); } if (!commonsMultipartFile.isEmpty()) { File imageDir = new File(imagePath); if (!imageDir.exists()) imageDir.mkdirs(); File targetFile = new File(imagePath + fileName); try { commonsMultipartFile.transferTo(targetFile); model.addAttribute("flag", true); } catch (IllegalStateException e) { e.printStackTrace(); model.addAttribute("flag", false); model.addAttribute("message", e.getMessage()); } catch (IOException e) { e.printStackTrace(); model.addAttribute("flag", false); model.addAttribute("message", e.getMessage()); } Photo photo = new Photo(); photo.setSort(0); photo.setUid(Long.valueOf(u.getId())); photo.setUrl("idCard/" + targetFile.getName()); photo.setStatus(1); photo.setAddtime(new Date()); borrowerPhotoService.save(photo); } jsonObj.put("success", true); returnJsonObject(response, jsonObj); } @Deprecated @RequestMapping(value = "/doadd22", method = RequestMethod.POST) public void doAdd(Photo photo, HttpServletRequest request, Model model, HttpServletResponse response) { JSONObject jsonObj = new JSONObject(); response.setContentType("text/html;charset=UTF-8"); String imagePath = globalConfig.getImageUploadPath(); MultipartHttpServletRequest multipartRequest = (MultipartHttpServletRequest) request; CommonsMultipartFile commonsMultipartFile = (CommonsMultipartFile) multipartRequest .getFile("Filedata"); String fileName = handleFileName(model, commonsMultipartFile); if (!commonsMultipartFile.isEmpty()) { File imageDir = new File(imagePath); if (!imageDir.exists()) imageDir.mkdirs(); File targetFile = new File(imagePath + "/" + fileName); try { commonsMultipartFile.transferTo(targetFile); } catch (IllegalStateException | IOException e) { e.printStackTrace(); } photo.setUrl(targetFile.getName()); photo.setStatus(PhotoStatus.NORMAL.getCode()); // photoService.save(photo); } jsonObj.put("success", true); returnJsonObject(response, jsonObj); } private String handleFileName(Model model, CommonsMultipartFile commonsMultipartFile) { String fileName = commonsMultipartFile.getOriginalFilename(); model.addAttribute("fileName", fileName); String suffix = ".jpg"; int index = fileName.lastIndexOf("."); if (index != -1) { suffix = fileName.substring(index, fileName.length()); } try { fileName = MD5Util.md5(date()) + suffix; } catch (Exception e1) { e1.printStackTrace(); } return fileName; } private String date() { return DateFormatUtil.format(new Date(), "yyyyMMddHHmmssSSS") .substring(1); } }
相关文章推荐
- 图片上传代码-旧的实现方式,项目中已删除,发表做备用
- 图片上传代码-旧的实现方式,项目中已删除,发表做备用
- 图片上传代码-旧的实现方式,项目中已删除,发表做备用
- weui框架实现上传、预览和删除图片功能代码
- php实现base64图片上传方式实例代码
- spring mvc 多文件 上传 按天生成目录 ,删除,限制为图片代码,实际项目中应用代码
- 微信小程序实现图片上传放大预览删除代码
- 简单PHP上传图片、删除图片实现代码
- 简单PHP上传图片、删除图片实现代码
- JSP实现图片上传代码
- php 实现简单的图片上传代码
- 实现上传图片之后显示预览javaScript代码
- 图片上传和修改最短的代码实现~
- PHP CKEditor 上传图片实现代码
- 纯AS代码实现可预览本地图片的flash上传客户端(as3.0)
- php gd2 上传图片/文字水印/图片水印/等比例缩略图/实现代码
- php下连接ftp实现文件的上传、下载、删除文件实例代码
- PHP 图片上传实现代码 带详细注释
- php 删除记录同时删除图片文件的实现代码
- jquery 批量上传图片实现代码