springboot实战第四章-SpringMVC的文件上传配置

SpringMVC的文件上传

文件上传是一个项目里经常要用到的功能,SpringMVC通过配置一个MultipartResolver来上传文件。

在Spring的控制器中,通过MultipartFile file来接收文件,通过MultipartFile[] files接收多个文件上传。

在这里大概进行5步操作,就可以愉快的实现文件的上传

1.首先添加依赖

这个在第四章开始的时候我已经添加好了,可以简化io的操作


2.上传页面,在views下新建upload.jsp页面


3.添加转向upload页面的ViewController

 @Override
    public void addViewControllers(ViewControllerRegistry registry) {
        registry.addViewController("/index").setViewName("index");
        registry.addViewController("/toUpload").setViewName("upload");
    }

4.MultipartResolver配置

在这里要注意中文乱码问题,这时候我还没配置全局的字符编码,很容易遇到乱码问题

/**
     * 上传文件配置
     * 注意这里可以设置编码,防止中文乱码
     */
    @Bean
    public MultipartResolver multipartResolver(){
        CommonsMultipartResolver multipartResolver=new CommonsMultipartResolver();
        multipartResolver.setMaxUploadSize(1000000);
        multipartResolver.setDefaultEncoding("UTF-8");
        return multipartResolver;
    }

5.控制器

这里主要是接收到文件后放在磁盘上,可以查看磁盘文件来验证结果

package com.just.springmvc4.controller;

import java.io.File;
import org.apache.commons.io.FileUtils;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.multipart.MultipartFile;

@RestController
public class UploadController {
    @RequestMapping(value = "/upload",method = RequestMethod.POST)
    public String uploadFile(MultipartFile file){
        try {
            FileUtils.writeByteArrayToFile(new File("D:\\file\\"+file.getOriginalFilename()),file.getBytes());
            return "all is well";
        }catch (Exception e){
            e.printStackTrace();
            return "wrong";
        }
    }
}
//TODO:这里还没有尝试多文件的上传,有空试下多个文件的上传操作再来展示一波

猜你喜欢

转载自blog.csdn.net/qq_28056641/article/details/80499155