springboot文件上傳


springMvc文件上傳:

  1、文件上傳

  定義:就是將本地計算的中得文件上傳到當前請求應用得應用服務器過程,稱之為文件上傳

  2、springmvc中文件上傳注意事項

    a.准備文件上傳頁面  表單提交方式必須是post  enctype必須是multipart/form-data

    b.開發控制器咋控制器中使用MultipartFile形式進行接受用戶上傳文件

    c.使用MultipartFile方式接受文件必須在配置文件中配置文件上傳解析器 且 解析器得id必須為multipartResolver

    d.multipartResolver 在處理文件上傳是要求項目必須引入commons-fileupload

 

springboot中文件上傳

  1.准備上傳頁面  提供form表單  提交post  emctype  multipart/form-data

新建webapp:

 

 

 這個文件是在main目錄下新建得webapp中寫的一個upload.jsp.

<%--
  Created by IntelliJ IDEA.
  User: chenjl159
  Date: 2020/8/19
  Time: 15:02
  To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" pageEncoding="UTF-8" language="java" isELIgnored="false" %>
<html lang="en">
<head>
    <title>Title</title>
</head>
<body>
   <h1>
       用來測試文件上傳
   </h1>
    <form action="${pageContext.request.contextPath}/file/upload" method="post" enctype="multipart/form-data">
        <input type="file" name="aaa">
                             <br>
        <input type="submit" value="上傳文件">
    </form>
</body>
</html>

 

  2.開發控制器 使用MultipartFile形式接受  將接受文件放入執行文件目錄中即可

  

@Controller
@RequestMapping("file")
public class FileController {


    @RequestMapping("upload")
    public String upload(MultipartFile aaa, HttpServletRequest request) throws IOException {

        System.out.println("文件名"+aaa.getOriginalFilename());
        System.out.println("文件類型"+aaa.getContentType());
        System.out.println("文件大小"+aaa.getSize());

        //根據相對獲取絕對路徑
        String realPath = request.getSession().getServletContext().getRealPath("/files");

        //創建時間文件夾
        String format = new SimpleDateFormat("yyyy-MM--dd").format((new Date()));
        File file=new File(realPath,format);
        if(!file.exists())  file.mkdirs();

        //獲取文件后綴
        String extension = FilenameUtils.getExtension(aaa.getOriginalFilename());
        String newFileNamePrefix = UUID.randomUUID().toString().replace("-", "")+
                new SimpleDateFormat("yyyyMMddHHmmssSSS").format(new Date());
        String newFileName =newFileNamePrefix+"."+extension;
        //處理上傳操作
        aaa.transferTo(new File(file,newFileName));

        return "redirect:/upload.jsp";

    }
}

 

其中得配置文件:

server:
  port: 8989
  servlet:
    context-path: /springboot_day2
    jsp:                    #熱部署
      init-parameters:
        development: true

spring:
  mvc:
    view:
      suffix: .jsp
      prefix: /
  servlet:
    multipart:
      max-request-size: 4MB   #控制請求可以上傳文件得大小大小  默認為10MB  單位可以為MB 和KB
      max-file-size: 4MB        #真正用來控制實際文件上傳大小限制   默認值為1MB 單位為MB
      #讓max-file-size比max-request-size大或者相等較好,因為如果不行得話可以在請求得時候就拒絕,不在走后面得類型

目錄結構:

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM