当前位置:首页 > 开发 > 编程语言 > Spring > 正文

关于Spring MVC项目(maven)中通过fileupload上传文件

发表于: 2015-06-01   作者:843977358   来源:转载   浏览:
摘要: Spring MVC 中通过fileupload上传文件,其中项目使用maven管理。   1.上传文件首先需要的是导入相关支持jar包:commons-fileupload.jar,commons-io.jar 因为我是用的maven管理项目,所以要在pom文件中配置(每个人的jar包位置根据实际情况定) <!-- 文件上传 start by zhangyd-c --&g

Spring MVC 中通过fileupload上传文件,其中项目使用maven管理。

 

1.上传文件首先需要的是导入相关支持jar包:commons-fileupload.jar,commons-io.jar

因为我是用的maven管理项目,所以要在pom文件中配置(每个人的jar包位置根据实际情况定)

<!-- 文件上传 start by zhangyd-c -->
<dependency>
	<groupId>commons-fileupload</groupId>
	<artifactId>commons-fileupload</artifactId>
	<version>1.3.1</version>
</dependency>
<dependency>
	<groupId>commons-io</groupId>
	<artifactId>commons-io</artifactId>
	<version>2.4</version>
</dependency>
<!-- 文件上传 end -->

 2.获取文件信息

/**
	 * 头像 根据Id生成存储目录
	 * @param file
	 * @param userId
	 * @param request
	 * @param response
	 * @throws IOException  
	 * @return void
	 * @throws
	 */
	@RequestMapping("/updateLogo")
	public String updateLogo(
			@RequestParam(value = "upload-file") MultipartFile file,
			@RequestParam String id, HttpServletRequest request,String base64Char,
			HttpServletResponse response) throws IOException {
		response.setContentType("text/html;charset=UTF-8");
		String fileName = file.getOriginalFilename();
		String fileFormat = fileName.substring(fileName.lastIndexOf("."));
		UUID uid = UUID.randomUUID(); 
		String newFileName = uid.toString() + fileFormat;
		String filePath = null;
		//base64Char 为剪切后的 base64位的字符串,如果不为空说明图片被剪切了①
		if(base64Char == null || "".equals(base64Char)){
			// 根据用户id获取创建上传目录
			filePath = FileUtils.getFilePath(id);②
			File descfile = new File(filePath, newFileName);// 文件路径文件名
			FileUtils.copyInputStreamToFile(file.getInputStream(), descfile);// 开始上传
		}else{
			filePath = this.userDetailsService.GenerateImage(base64Char, id,newFileName);③
		}
		//此处将图片信息保存到数据库(省略......)
		return "redirect:/userhome/home";
	}

 3.如果认为只是这样就完了的话, 那就错了 ,你的程序一定跑不起来,MultipartFile这个接口 需要在spring的配置文件中配置,加入

org.springframework.web.multipart.commons.CommonsMultipartResolver

<!-- 配置上传文件的限制信息 by zhangyd-c -->
	<bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver">  
		<!-- 默认最大不超过2M -->
    	<property name="maxUploadSize" value="2097152" />  
	</bean>

 这样就ok 了,

因为我这个功能上传用户头像,因此就包含剪切后的图像获取,所以中间穿插了一些其他知识点(①②③),具体内容下次整理了发上。。

关于Spring MVC项目(maven)中通过fileupload上传文件

  • 0

    开心

    开心

  • 0

    板砖

    板砖

  • 0

    感动

    感动

  • 0

    有用

    有用

  • 0

    疑问

    疑问

  • 0

    难过

    难过

  • 0

    无聊

    无聊

  • 0

    震惊

    震惊

编辑推荐
通过Maven建立Spring MVC项目,引入了Spring相关jar依赖。 1、为了使用commons fileupload组件,需
原文地址:http://blog.lichengwu.cn/c-sharp/2010/04/06/ASP.net-MVC-FileUpload/ ASP.net MVC的上
ASP.net MVC的上传文件功能并没有其他模块(action,Controller)那么智能、好用,不过也不是很复杂
今天项目上要求使用Memcache对数据进行缓存操作,因为之前的项目中用过Memcache,所以整理下来。 第
FileUpload——在Struts2中上传文件 大家可能注意一个问题很久了,在现在我们使用的Struts2版本中有
Spring MVC文件上传领悟 一,问题 同样是表单提交,而文件不是明文,是二进制数据,怎么可以上传呢
Springmvc文件上传: 1.代码截图如下: 2.UploadController.java: package cn.csdn.controller; imp
struts2文件上传下载非常的简单。 给我们提供了非常简洁的方式来上传文件。 其中我们需要用到的jar
java中用于上传文件的组件有很多,今天我来介绍一个最常用的Apache Common FileUpload组件。 首先,
上传文件要是用asp.net的控件上传其实是很简单的问题,要是为了用户体验的提高很多的web开发人员都
版权所有 IT知识库 CopyRight © 2009-2015 IT知识库 IT610.com , All Rights Reserved. 京ICP备09083238号