Spring Boot 上傳文件


Spring Boot 上傳文件也是使用 MultipartFile 類,和 Spring MVC 其實差不多,參考文章:https://www.cnblogs.com/jwen1994/p/11182923.html

HTML

<form enctype="multipart/form-data" method="post" action="/upload">
  文件:<input type="file" name="head_img"/>
  姓名:<input type="text" name="name"/>
  <input type="submit" value="上傳"/>
</form>

Java 文件

package com.example.demo.controller;

import java.io.File;
import java.io.IOException;
import java.util.UUID;

import javax.servlet.http.HttpServletRequest;

import com.example.demo.domain.JsonData;

import com.example.demo.domain.JsonData;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.multipart.MultipartFile;

/**
 * 功能描述:文件測試
 *
 * <p> 創建時間:Apr 22, 2018 11:22:29 PM </p> 
 * <p> 作者:小D課堂</p>
 */
@Controller
public class FileController {
        private static final String filePath = "F:/IdeaProjects/springbootDemo/src/main/resources/static/images/";
    
        @RequestMapping(value = "upload")
        @ResponseBody
        public JsonData upload(@RequestParam("head_img") MultipartFile file, HttpServletRequest request) {
          
            //file.isEmpty(); 判斷圖片是否為空
            //file.getSize(); 圖片大小進行判斷
             
            String name = request.getParameter("name");
            System.out.println("用戶名:"+name);
            
             // 獲取文件名
            String fileName = file.getOriginalFilename();            
            System.out.println("上傳的文件名為:" + fileName);
            
            // 獲取文件的后綴名,比如圖片的jpeg,png
            String suffixName = fileName.substring(fileName.lastIndexOf("."));
            System.out.println("上傳的后綴名為:" + suffixName);
            
            // 文件上傳后的路徑
            fileName = UUID.randomUUID() + suffixName;
            System.out.println("轉換后的名稱:"+fileName);
            
            File dest = new File(filePath + fileName);
           
            try {
                file.transferTo(dest);
                
                return new JsonData(0, fileName);
            } catch (IllegalStateException e) {
                e.printStackTrace();
            } catch (IOException e) {
                e.printStackTrace();
            }
            return  new JsonData(-1, "fail to save ", null);
        }
}

文件大小配置,可以在啟動類里面配置

@Bean 
public MultipartConfigElement multipartConfigElement() { 
  MultipartConfigFactory factory = new MultipartConfigFactory(); 
  //單個文件最大 
  factory.setMaxFileSize("10240KB"); //KB,MB 
  /// 設置總上傳數據總大小 
  factory.setMaxRequestSize("1024000KB"); 
  return factory.createMultipartConfig(); 
}

 


免責聲明!

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



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