Skip to content
java
@RequestMapping("/data")
public String index(
        MultipartFile file,
        HttpServletRequest request
) {
    // 判断文件是否为空
    if (file != null && file.getSize() > 0) {
        // 文件名称 = UUID + 文件后缀
        String imgName = UUID.randomUUID() + file.getOriginalFilename().substring(file.getOriginalFilename().lastIndexOf("."));
        // 文件要存入的位置
        String path = request.getServletContext().getRealPath("/img");
        try {
            // 文件存入服务器
            file.transferTo(new File(path + "/" + imgName));
        } catch (IOException e) {
            throw new RuntimeException(e);
        }
    }
    return "redirect:/";
}

上述代码时文件上传的后端代码,其中使用UUID作为文件的名称为了防止文件的命名重复,其次文件的存入位置可以根据不同的情况进行不同的改变

html
<form action="/data" method="post" enctype="multipart/form-data">
    <input type="file" name="file">
    <input type="submit" value="提交">
</form>

这个是前端代码,其中必须要是post请求方式,必须有 enctype="multipart/form-data" 在上传的input标签中,name名称必须和后端的接收名称一致如此才不会错

xml
<!-- 配置文件上传,如果没有使用文件上传可以不用配置,当然如果不配,那么配置文件中也不必引入上传组件包 -->
<bean id="multipartResolver"
      class="org.springframework.web.multipart.commons.CommonsMultipartResolver">
    <!-- 默认编码 -->
    <property name="defaultEncoding" value="utf-8"/>
    <!-- 文件大小最大值 -->
    <property name="maxUploadSize" value="10485760000"/>
    <!-- 内存中的最大值 -->
    <property name="maxInMemorySize" value="40960"/>
</bean>