`
woshixushigang
  • 浏览: 575937 次
  • 性别: 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";
	}
 
分享到:
评论

相关推荐

    Spring MVC 图片上传有插件+jsp+后台

    在本文中,我们将深入探讨如何在Spring MVC框架中实现图片上传功能。Spring MVC是一个流行的Java Web开发框架,它提供了一种模块化的方式来构建Web应用程序,包括处理表单数据和文件上传。在这里,我们重点关注如何...

    spring mvc uploadify上传文件

    在本文中,我们将深入探讨如何...通过以上步骤,我们可以实现Spring MVC与uploadify的集成,从而在Web应用中提供友好的文件上传功能,特别适用于图片上传场景。这不仅简化了用户交互,还让后端处理文件变得更加方便。

    layui 图片上传+表单提交+ Spring MVC的实例

    在本实例中,我们主要探讨了如何利用Layui库进行图片上传,同时结合表单提交和Spring MVC框架实现后端处理。Layui是一个轻量级的前端组件库,提供了丰富的UI组件,包括上传功能。以下是具体的知识点: 1. **Layui...

    spring MVC FTP上传图片配置

    Spring MVC 注解模式下怎么样上传FTP图片,内容很简单,一看就会

    spring mvc 上传代码 可运行

    在Spring MVC中,上传文件是一项常见的功能,尤其在处理用户提交的数据时,如图片、文档等。 这篇描述中的"spring mvc 上传代码 可运行"表明这是一个关于Spring MVC文件上传的实际示例项目。为了理解这个项目,我们...

    Spring MVC多图片上传,多值上传,完整项目,保证可以完整运行

    在这个完整的项目中,我们将探讨如何使用Spring MVC实现多图片和多值上传的功能。开发环境选择了NetBeans,这是一款流行的Java集成开发环境,它提供了方便的代码编写、调试和部署工具。 在Spring MVC中,文件上传是...

    第五章 Spring MVC 文件上传

    标题 "第五章 Spring MVC 文件上传" 涉及的核心知识点主要围绕Spring MVC框架中的文件上传功能,这是一个在Web开发中常见的需求,特别是处理用户通过表单提交的文件,如图片、文档等。在这个主题下,我们需要理解...

    spring mvc+hibernate 图片存储至blob

    前端页面通过Ajax或者表单提交的方式向Spring MVC的Controller发送请求,从而触发图片上传和存储的完整流程。 总结起来,"spring mvc+hibernate 图片存储至blob"这个主题涉及到Spring MVC处理文件上传、Hibernate将...

    Spring MVC框架实现上传下载

    以下将详细讲解如何使用Spring MVC来处理这两种操作,特别是图片的上传和多图片同时上传。 首先,为了启用Spring MVC对文件上传的支持,我们需要在配置文件`springmvc.xml`中添加一个`multipartResolver` bean。这...

    spring MVC uploadify

    总结起来,结合Spring MVC的`multipartResolver`和uploadify,我们可以实现一个高效、用户友好的图片上传和预览功能。这涉及到后端文件上传的处理、前端的JavaScript交互以及服务器的响应设置。通过这种方式,用户...

    spring mvc+ajax 文件上传

    本示例探讨的是如何利用Spring MVC后端框架与前端的Ajax技术来实现高效的文件上传,相较于传统的表单提交方式,这种方法具有无刷新、用户体验更佳的优势。以下是关于这个主题的详细讲解。 首先,我们需要理解Spring...

    spring mvc实现文件上传并携带其他参数的示例

    在Spring MVC框架中,文件上传是一项常见的功能,它允许用户通过表单提交文件,并将这些文件与其他参数一起处理。在本文中,我们将深入探讨如何在Spring MVC中实现这个功能,同时携带其他参数。 首先,我们需要引入...

    Spring MVC文件上传大小和类型限制以及超大文件上传bug问题

    在Spring MVC框架中,文件上传是一项常见的功能,但同时也需要考虑一些安全性与性能的问题,比如文件大小限制和文件类型检查。本篇文章将深入探讨如何在Spring MVC中设置这些限制,并解决超大文件上传可能导致的bug...

    多张图片上传的例子,MVC项目

    实现多张图片上传的第一步是**集成uploadify**到MVC项目中。这包括在HTML页面中引入uploadify的CSS和JavaScript文件,并配置其属性,如选择文件的数量限制、上传URL、数据参数等。例如,你可以这样设置: ```html ...

    Spring MVC+mybatis+easyui+ueditor+shiro权限框架管理系统

    4. UEditor:UEditor是由百度开发的一款富文本编辑器,具有丰富的编辑功能,如图片上传、视频插入、公式编辑等。它支持自定义配置,可以满足不同场景下的需求,为用户提供了一流的在线编辑体验。 5. Shiro:Apache ...

    spring mvc的例子

    在“spring mvc的例子”中,我们可能会看到一个完整的示例项目,其中包含了图片上传功能。现在,让我们深入探讨Spring MVC的关键概念和图片上传的实现。 1. **Spring MVC 架构** - **DispatcherServlet**:作为...

    springmvc_jpbm5_document.zip_spring mvc

    6. **dwz+jquery+fileupload+springmvc实现文件上传及图片预览**:这是更复杂的应用,结合了DWZ(一个前端框架)、jQuery的Fileupload插件和Spring MVC,实现了文件上传并提供实时图片预览的功能。 7. **springMVC+...

    Spring_MVC_051:Spring MVC 学习总结(五)——校验与文件上传

    Spring MVC 学习总结(五)——校验与文件上传 目录 2.2.7、范围 2.2.8、其它注解 2.3、注解控制器参数 1.4、在UI中添加错误标签 1.5、测试运行 三、使用jQuery扩展插件Validate实现前端校验 3.1、jQuery扩展插件...

    springmvc+图片上传+freemark

    在本项目中,我们关注的是如何结合Spring MVC实现图片上传功能,并利用FreeMarker作为模板引擎来展示这些图片。 首先,Spring MVC 提供了处理HTTP请求的能力,包括文件上传。在Spring MVC中,我们可以使用`...

Global site tag (gtag.js) - Google Analytics