SpringMVC配置文件上传功能(Maven)

来源:互联网 发布:网络传播的作用 编辑:程序博客网 时间:2024/05/19 21:01

如果你还不知道怎么用Maven搭建SpringMVC项目,请点此这里查看

1. 添加文件上传依赖,pom.xml添加如下内容

<dependency>    <groupId>commons-io</groupId>    <artifactId>commons-io</artifactId>    <version>2.3</version></dependency><dependency>    <groupId>commons-fileupload</groupId>    <artifactId>commons-fileupload</artifactId>    <version>1.3.1</version></dependency>

2. 新建上传页面,在src/main/resources/views/下新建upload.jsp,内容如下

<%@ page language="java" contentType="text/html; charset=UTF-8"    pageEncoding="UTF-8"%><!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"><html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>upload page</title></head><body>    <div class="upload">        <form action="upload" enctype="multipart/form-data" method="post">            <input type="file" name="file" /><br /> <input type="submit"                value="上传" />        </form>    </div></body></html>

3. 添加转向,配置MultipartResolver,添加如下内容

//这是一个继承自WebMvcConfigurerAdapter的类@Overridepublic void addViewControllers(ViewControllerRegistry registry) {    registry.addViewController("/index").setViewName("/index");    registry.addViewController("toUpload").setViewName("upload");}@Beanpublic MultipartResolver multipartResolver() {    CommonsMultipartResolver multipartResolver = new CommonsMultipartResolver();    multipartResolver.setMaxUploadSize(10000000);    return multipartResolver;}

4. 添加控制器,内容如下

//这是一个控制器类@RequestMapping(value = "/upload", method = RequestMethod.POST)public @ResponseBody String upload(MultipartFile file) {    try {        FileUtils.writeByteArrayToFile(new File("/Users/pantao/Desktop/upload/" + file.getOriginalFilename()),                    file.getBytes());        return "ok";    } catch (IOException e) {        e.printStackTrace();        return "wrong";    }}

5. 运行效果

图片