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页面  

  

 

 
posted @ 2022-07-13 20:38  向大海  阅读(627)  评论(0编辑  收藏  举报