`
woshixushigang
  • 浏览: 562512 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类

spring mvc 图片上传

 
阅读更多
/**
	 * 保存个人风采
	 * 
	 * @throws IOException
	 * 
	 */
	@RequestMapping(value = "/saveImgs1")
	public String saveImgs(ModelMap modelMap) {
		/* 权限验证 */
		int uid = this.user.get().getUid();
		if (this.user.get().getUid() <= 0) {
			return "redirect:/error/index?code=auth.unlogin";
		}
		// 允许上传的文件格式的列表JPG、JPEG、GIF、BMP
		final String[] allowtype = new String[] { ".JPG", ".JPEG", ".GIF",
				".BMP", ".PNG", ".jpg", ".jpeg", ".gif", ".bmp", ".png" };
		try {
			String realPath = CMConfig.getProperty("newstempurl"); // 文件上传的绝对路径

			File fileDir = new File(realPath);
			if (!fileDir.exists()) {
				fileDir.mkdirs();
			}
			request.get().setCharacterEncoding("UTF-8");
			MultipartRequest mr = new MultipartRequest(request.get(), realPath,
					4194304, "UTF-8");
			// mr.get
			String filename = "";
			String description = "";
			Enumeration filesname = mr.getFileNames();
			Enumeration filesdesc = mr.getParameterNames();
			String newImgPath = ""; // 新图片路径
			String url = ""; // 保存图片的url

			while (filesname.hasMoreElements()) {
				String name = (String) filesname.nextElement();
				String dc = (String) filesdesc.nextElement();
				filename = mr.getFilesystemName(name);
				description = mr.getParameter(dc);
				// filedName = (String) filesname.nextElement();// 文件文本框的名称
				File uploadFile = mr.getFile(name);
				if (null != uploadFile && uploadFile.length() > 0) {
					String imgPath = uploadFile.getName();
					// imgPath为原文件名
					int idx = imgPath.lastIndexOf(".");
					// 文件后缀
					String extention = imgPath.substring(idx);
					java.util.Date dt = new java.util.Date(
							System.currentTimeMillis());
					SimpleDateFormat fmt = new SimpleDateFormat(
							"yyyyMMddHHmmss");
					Long now = System.currentTimeMillis();
					String time = fmt.format(dt) + String.valueOf(now);
					// 新的文件名(日期+后缀)
					newImgPath = this.user.get().getUid() + "_" + time
							+ extention;
					int allowFlag = 0;
					int allowedExtCount = allowtype.length;
					for (; allowFlag < allowedExtCount; allowFlag++) {
						if (allowtype[allowFlag].equals(extention))
							break;
					}
					if (allowFlag == allowedExtCount) {
						String message = "";
						for (allowFlag = 0; allowFlag < allowedExtCount; allowFlag++) {
							message += "*" + allowtype[allowFlag] + " ";
						}
						logger.debug(extention + "message:'请上传以下类型的文件"
								+ message + "'");
						return "redirect:/account/personal_style?exception=imgtoolong";
					}
					File f = new File(fileDir + "/" + newImgPath);
					uploadFile.renameTo(f);
					Date d = new Date(now);
					String year = DateUtil.dateToString(d, "yyyy");
					String month = DateUtil.dateToString(d, "MM");
					String day = DateUtil.dateToString(d, "dd");
					url = CMConfig.getProperty("image.upload.url") + "/" + year
							+ "/" + month + "/" + day + "/" + newImgPath;
					FileMove.move(CMConfig.getProperty("newstempurl")
							+ newImgPath, CMConfig.getProperty("newsurl"),
							newImgPath);
				}
			}
			UDBUserDao userDao = AppContext
					.getBean("userDao", UDBUserDao.class);
			if (url.trim().length() == 0) {
				return "redirect:/account/personal_style?exception=imgnotnull";
			} else {
				if (userDao.initSelfStyle(uid, url) > 0) {
					// 增加积分
					ScoreService scoreService = AppContext.getBean(
							"scoreService", ScoreService.class);
					scoreService.addScore(this.user.get().getUid(),
							ScoreRuleType.ADD_STYLE, 0);
					return "redirect:/account/personal_style?exception=success";
				} else {
					return "redirect:/account/personal_style?exception=error";
				}
			}

		} catch (UnsupportedEncodingException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		} catch (IOException e) {
			logger.debug("**************************************************");
			logger.debug("个人风采图片上传大小超过4M");
			logger.debug("**************************************************");
			return "redirect:/account/personal_style?exception=imgtoolong";
		}

		this.model.get().addAttribute("title",
				"个人风采_账号设置_" + CMConfig.getProperty("default.title"));
		return "redirect:/account/personal_style";
	}
 
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics