Springboot文件上传
1.创建Springboot项目,结构如下:
2. 代码部分
import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.multipart.MultipartFile; import javax.servlet.http.HttpServletRequest; import java.io.File; import java.io.IOException; import java.text.SimpleDateFormat; import java.util.Date; import java.util.UUID; //文件上传 @Controller @RequestMapping("upload") public class UploadConcoller { @RequestMapping("test") public String upload(MultipartFile fileTest, HttpServletRequest request) throws IOException { //获取上传的文件名 System.out.println("上传的文件名为:"+fileTest.getOriginalFilename()); System.out.println("上传的文件大小为:"+fileTest.getSize()); System.out.println("上传的文件类型为:"+fileTest.getContentType()); //动态获取路径 String realPath = request.getSession(true).getServletContext().getRealPath("upload"); //保证上传的文件名唯一 String uu = UUID.randomUUID().toString().replace("-",""); String newFile = uu+fileTest.getOriginalFilename(); System.out.println("新名字:"+newFile); //创建新的文件夹--当前系统时间 String format = new SimpleDateFormat("yyyy-MM-dd").format(new Date()); System.out.println("文件名:"+format); new File(realPath,format).mkdir(); //复制到该目录下 fileTest.transferTo(new File(realPath+"/"+format,newFile)); return "redirect:/index.jsp"; } }
3. index.jsp页面
<%@ page pageEncoding="UTF-8" isELIgnored="false" %> <form action="${pageContext.request.contextPath}/upload/test" method="post" enctype="multipart/form-data"> <input type="file" name="fileTest"></br> </br> <input type="submit" value="提交"> </form>
4. pom.xml
<!--父级项目依赖--> <parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>2.2.5.RELEASE</version> </parent> <dependencies> <!--web支持的jar springboot的启动器--> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> <!--JSP解析依赖--> <dependency> <groupId>org.apache.tomcat.embed</groupId> <artifactId>tomcat-embed-jasper</artifactId> </dependency> <!--war包--> <!--去掉内嵌tomcat--> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-tomcat</artifactId> <scope>provided</scope> </dependency> <!--去掉使用内嵌tomcat解析jsp--> <dependency> <groupId>org.apache.tomcat.embed</groupId> <artifactId>tomcat-embed-jasper</artifactId> <scope>provided</scope> </dependency> </dependencies>
5. applcation.properties
spring.mvc.view.prefix=/
spring.mvc.view.suffix=.jsp
#上传时出现异常: 上传文件的大小超出默认配置 默认10M
#用来指定服务端最大文件大小
spring.servlet.multipart.max-file-size=50MB
#用来控制文件上传大小的限制
spring.servlet.multipart.max-request-size=60MB
6.启动项目,访问项目接口 会跳转到 jsp页面