Java的件上传有很多种实现方式,原生的java程序使用的都是HttpServletRequest来接收前台的文件数据,然后通过file进行转换等等来实现的。
本文章是使用springboot来实现文件上传的功能:
废话不多说,直接上代码
依赖部分我就不放上来了。
1、首先,在配置文件中定义好文件的上传大小限制,Spring Boot工程嵌入的tomcat限制了请求的文件大小默认为1MB,单次请求的文件的总数不能大于10Mb.要更改这个默认值需要在配置文件(如application.properties)进行如下设置。

# 启用多部分文件
spring.servlet.multipart.enabled=true
#=======文件上传
#文件大小设置
#单个文件的大小
spring.servlet.multipart.max-file-size=30MB
#单次请求的文件的总大小
spring.servlet.multipart.max-request-size=1000MB
#Tomcat的上传文件最大值
server.tomcat.max-http-form-post-size=-1

2、配置文件定义完就到前端的代码啦。

<form th:action="@{/user/uploadFile}" method="post" enctype="multipart/form-data">
  <input name="file" th:type="file">
  <button type="submit">上传</button>
</form>

注意:一定要在form标签中加上 enctype=“multipart/form-data” 属性,否则后面执行时会报错。

3、接下来就是后台的代码了,这个很简单,都注释的非常清楚了,代码也少。

@RequestMapping(value = "/uploadFile",method = RequestMethod.POST)
@ResponseBody
//@RequestParam()注解的参数要和前端代码name属性值对应
public String file(@RequestParam("file") MultipartFile multipartFile){
    //判断文件是否为空 isEmpty
    if (multipartFile == null){
        return "文件为空";
    }
    //获取文件的原名称 getOriginalFilename
    String OriginalFilename = multipartFile.getOriginalFilename();
    //获取时间戳和文件的扩展名,拼接成一个全新的文件名; 用时间戳来命名是为了避免文件名冲突
    String fileName = System.currentTimeMillis()+"."+OriginalFilename.substring(OriginalFilename.lastIndexOf(".")+1);
    //定义文件存放路径
    String filePath = "H:\\admin\\springbootFile\\";
    //新建一个目录(文件夹)
    File dest = new File(filePath+fileName);
    //判断filePath目录是否存在,如不存在,就新建一个
    if (!dest.getParentFile().canExecute()){
        dest.getParentFile().mkdirs(); //新建一个目录
    }
    try {
        //文件输出
        multipartFile.transferTo(dest);
    }
    catch ( Exception e) {
        e.printStackTrace();
        //拷贝失败要有提示
        return "上传失败";
    }
    return "上传成功";
}

好了,到这里文件上传就写好了,接下来就去测试一下;下面就是我的执行结果

java微信服务商进件图片上传 java服务器上传文件_上传