欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  科技

文件上传

程序员文章站 2022-08-19 23:00:17
文件上传 一、配置文件上传的大小限制 application.properties 配置文件添加: 限制单个文件的最大值 限制上传的多个文件的总大小 二、单文件上传 1、创建Controller控制类 2、如果要写jsp页面验证的话,选择文件,form的 为`multipart/form data` ......

文件上传

一、配置文件上传的大小限制

application.properties配置文件添加:

# 上传文件总的最大值
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限制上传的多个文件的总大小

二、单文件上传

1、创建controller控制类

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 "上传失败!!!";
    }
}

2、如果要写jsp页面验证的话,选择文件,form的enctypemultipart/form-data

我这里直接用postman进行验证。

1.打开postman

2.填写url,选择post提交方式。

文件上传

3.①选择body

​ ②选择form-data

​ ③添加key值:file

​ ④选择file

​ ⑤添加value

文件上传

4、点击send运行

文件上传

5、输出返回值。查看上传文件。上传成功!

文件上传

三、多文件上传

在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 "上传成功!!!";
}

选择不同的文件。(注:总大小不要超过你设定的限制值)

文件上传

查看上传结果
文件上传