欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

SpringMVC文件上传

程序员文章站 2022-06-03 10:29:44
...

导入commoms-fileupload.jar、common-io.jar包

Tomcat创建虚拟目录

tomcat每次更新启动都会清楚tomcat目录下的非配置文件,创建虚拟目录才能够将上传的文件保存下来,以便程序使用。

1、使用编程工具创建

SpringMVC文件上传

SpringMVC文件上传

2、在Tomcat目录下的conf目录中的server.xml中配置

SpringMVC文件上传

配置解析器

在dispatcherServlet-servlet.xml中配置解析器

 <!-- 文件解析器 -->
        <bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver">
        	<property name="maxUploadSize">
        		<value>5242880</value>
        	</property>
        	<!-- 设置上传文件最大尺寸5M -->
        </bean>

编写controller代码

@Controller
public class UploadController {

	@RequestMapping("upload.do")
	public ModelAndView upload(MultipartFile file) throws IllegalStateException, IOException {
		// 存图片硬盘路径
		String path = "D:\\MY\\images";//Tomcat中的虚拟目录的绝对路径
		// 新文件名
		String newFileName = "";
		// 获取文件名
		String oldName = file.getOriginalFilename();
		if (file != null&&oldName!=null&&oldName.length()>0) {
			// 获取文件后缀
			String suffix = oldName.substring(oldName.indexOf("."));
			// 使用UUID创建新文件名
			newFileName = UUID.randomUUID().toString().replaceAll("-", "") + suffix;
			// 创建新文件
			File newFile = new File(path, newFileName);
			// 传输文件
			file.transferTo(newFile);
		}
		ModelAndView mav = new ModelAndView();
		mav.addObject("imagePath", "/photo/" + newFileName);// /photo为Tomcat虚拟目录的虚拟路径
		mav.setViewName("upload");
		return mav;
	}
}

编写JSP页面

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>上传图片</title>
</head>
<body>
<h1>上传图片</h1>
<form action="<%=request.getContextPath() %>/upload.do" method="post" enctype="multipart/form-data">

file:<input type="file" name="file" /><br>
<input type="submit" value="upload" /><br>

</form>
<img src="http://10.25.164.131:8088${imagePath}">
${path }
</body>
</html>