SpringMVC---文件的上传

一:文件的上传

  • spring MVC为文件的上传提供了直接的支持,这种支持是通过即插即用的MultipartResolver实现的,Spring 用 Jakarta Commons FileUpload 技术实现了一个MultipartResolver实现类:CommonsMultipartResolver
  • springMVC上下文中默认没有装配MulitipartResolver,因此默认情况下不能处理文件上传工作,如果想使用springMVC提供的文件上传功能,则需要配置MultipartResolver。

二:配置 MultipartResolver

三:实现

1.导入jar包

 commons-fileupload-1.2.1.jar
commons-io-2.0.jar

2.配置spring mvc文件

<!-- 配置文件上传 -->
	<bean id="multipartResolver"
	class="org.springframework.web.multipart.commons.CommonsMultipartResolver">
		<property name="maxUploadSize" value="200000"></property>
		<property name="defaultEncoding" value="UTF-8"></property>
	</bean>

3.控制器方法

@RequestMapping("/testFileUpload")
	public String testFileUpload(@RequestParam MultipartFile[] files,HttpServletRequest request ) throws Exception, IOException {
		for(MultipartFile file :files) {
			if(file.isEmpty()) {
				System.out.println("文件未上传");
			}else {
				//得到上传的文件名
				String fileName=file.getOriginalFilename();
				//得到服务器项目发布运行所在地址
				String path1=request.getSession().getServletContext().getRealPath("image")+File.separator;
				//用日期作为标识
				String path=path1+new SimpleDateFormat("yyyyMMddHHmmss").format(new Date())+fileName;
				//查看文件上传路径
				System.out.println(path);
				//把文件上传到path路径下
				File localFile =new File(path);
				//如果目录不存在,则创建目录
				if(!localFile.exists()) {
					localFile.mkdirs();
				}
				file.transferTo(localFile);
			}
		}
		return "success";
	}

4.测试jsp,其中enctype必须为"multipart/form-data"

<form action="testFileUpload" method="post" enctype="multipart/form-data">
		  		<input type="file" name="files">
		  		<input type="file" name="files">
		  		<input type="submit" value="上传">
		  	</form>
发布了64 篇原创文章 · 获赞 12 · 访问量 1万+

猜你喜欢

转载自blog.csdn.net/qq_39093474/article/details/103877893