文件上傳

文件上傳

1、配置文件上傳的大小限制

application.properties配置文件添加:java

# 上傳文件總的最大值
spring.servlet.multipart.max-request-size=10MB
# 單個文件的最大值
spring.servlet.multipart.max-file-size=10MB
  • spring.servlet.multipart.max-file-size限制單個文件的最大值
  • spring.servlet.multipart.max-request-size限制上傳的多個文件的總大小

2、單文件上傳

一、建立Controller控制類web

package com.desire.controller;

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

import javax.servlet.http.HttpServletRequest;

import org.apache.log4j.Logger;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.multipart.MultipartFile;
import org.springframework.web.multipart.MultipartHttpServletRequest;

@RestController
@RequestMapping("/upload")
public class Upload {

    private static final Logger LOGGER = Logger.getLogger(Upload.class);

    @RequestMapping("uploadFile")
    public String uploadFile(@RequestParam("file") MultipartFile file) {

        if (file.isEmpty()) {
            return "上傳失敗,請選擇文件";
        }
        String fileName = file.getOriginalFilename();
        System.err.println("文件名稱:" + fileName);
        String filePath = "D:/upload/";
        System.err.println("文件保存路徑:" + filePath);
        File dest = new File(filePath + fileName);
        try {
            file.transferTo(dest);
            LOGGER.info("上傳成功!!!");
            return "上傳成功!";
        } catch (IOException e) {
            LOGGER.error(e.toString(), e);
        }
        return "上傳失敗!!!";
    }
}

二、若是要寫jsp頁面驗證的話,選擇文件,form的enctypemultipart/form-dataspring

我這裏直接用Postman進行驗證。apache

1.打開Postmanapp

2.填寫url,選擇POST提交方式。jsp

3.①選擇Bodyurl

​ ②選擇form-datacode

​ ③添加KEY值:fileorm

​ ④選擇Fileblog

​ ⑤添加VALUE

四、點擊Send運行

五、輸出返回值。查看上傳文件。上傳成功!

3、多文件上傳

在Controller中添加如下方法

@RequestMapping("uploadFiles")
public String uploadFiles(HttpServletRequest request) {
    List<MultipartFile> files = ((MultipartHttpServletRequest) request).getFiles("file");
    System.out.println("選擇了文件數::" + files.size());
    String filePath = "D:/upload/";
    System.err.println("文件保存路徑:" + filePath);
    for (int i = 0; i < files.size(); i++) {
        MultipartFile file = files.get(i);
        if (file.isEmpty()) {
            return "上傳第" + (i++) + "個文件失敗!!!";
        }
        String fileName = file.getOriginalFilename();
        System.err.println("文件名稱:" + fileName);
        File dest = new File(filePath + fileName);
        try {
            file.transferTo(dest);
            LOGGER.info("第" + (i + 1) + "個文件上傳成功!");
        } catch (IOException e) {
            LOGGER.error(e.toString(), e);
            return "上傳第" + (i++) + "個文件失敗!!!";
        }
    }
    return "上傳成功!!!";
}

選擇不一樣的文件。(注:總大小不要超過你設定的限制值)

查看上傳結果

相關文章
相關標籤/搜索