首页 > 其他分享 >Spring的文件上传功能upload

Spring的文件上传功能upload

时间:2023-02-22 11:34:21浏览次数:38  
标签:... fileupload Spring commons upload multipartResolver 上传 public

用全部Annotation配置方式来传文件, 首先也是修改配置类:

复制代码
@Override
    public void addViewControllers(ViewControllerRegistry registry) {
        registry.addViewController("/index").setViewName("/index");
        registry.addViewController("/hello").setViewName("/index");
        registry.addViewController("/fileupload").setViewName("/upload");
//增加一个fileupload的重定向, 指向一个upload.jsp文件, 里面就是两个input, 具体下面贴 } @Bean
//这个Multipart接应者(这翻译也是没sei了), 仅仅设置了一下最大文件尺寸, 如果超过这个尺寸就会报错,
//具体的报错还能修改Exception的那个interceptor来定义跟传msg, 重定向, 试过, 挺好用 public MultipartResolver multipartResolver() { CommonsMultipartResolver multipartResolver = new CommonsMultipartResolver(); multipartResolver.setMaxUploadSize(1000000); return multipartResolver; }
复制代码

上传测试用的jsp文件简单贴一下:

复制代码
... ...
    <div class="upload">
        <form action="upload" enctype="multipart/form-data" method="post">
            <input type="file" name="file" /><br> <input type="submit" value="上传" /><br>
        </form>
    </div>
... ...
复制代码

然后你不是点了上面的submit么, 执行的action是"upload", 这肯定是对应一个controller的, 下面就是:

复制代码
@Controller
public class UploadController {
    @RequestMapping(value = "upload", method = RequestMethod.POST)
    @ResponseBody
    public String upload(MultipartFile file) {
        try {
            FileUtils.writeByteArrayToFile(new File("c:/upload/" + file.getOriginalFilename()), file.getBytes());
            return "ok";

        } catch (IOException e) {
            e.printStackTrace();
            return "wrong";
        }
    }
}
复制代码

Linux的精(bian)英(tai)们, 修改一下这里的目录名即可.

就修改配置, 然后做一个controller, 测试建一个jsp, 就搞定了, 简单地要死吧.

哦对了, pom里面加上common-io的包:

复制代码
        <!-- 文件上传 -->
        <dependency>
            <groupId>commons-fileupload</groupId>
            <artifactId>commons-fileupload</artifactId>
            <version>1.3.1</version>
        </dependency>

        <!-- 可简化I/O操作 -->
        <dependency>
            <groupId>commons-io</groupId>
            <artifactId>commons-io</artifactId>
            <version>2.3</version>
        </dependency>
        
复制代码

注明出处, 全部内容来自"Spring Boot实战"一书, 我已经购买了kindle的正版(这是个坏习惯, 因为csdn全他妈有, 从源代码到原书pdf, 连淘宝都省了), 才不到10块钱, 推荐大家都买正版, 打击盗版...毕竟人家写书是费了时间的, 如果没人为之付费, 谁他妈还做知识传播?谁以后还敢写书, 对吧?

标签:...,fileupload,Spring,commons,upload,multipartResolver,上传,public
From: https://www.cnblogs.com/kn-zheng/p/17143755.html

相关文章

  • 【springboot】配置数据源datasource
    数据源datasource可以获取数据库连接Connection可以创建JdbcTemplate操作数据库默认配置spring默认的数据库连接池为Hikari,maven依赖如下<!--spring-boot-star......
  • .NET大文件上传解决方案
    ​ 以ASP.NETCoreWebAPI 作后端 API ,用 Vue 构建前端页面,用 Axios 从前端访问后端 API,包括文件的上传和下载。 准备文件上传的API #region 文件上传......
  • SpringCloud导入spring boot项目当作子模块微服务IDEA不识别子module问题
    1.在父工程下面引入module。<modules><module>study-design-mode</module></modules>2.点击子工程module中的pom文件,进行更新,引入成功。3.配置子工程的pom文件......
  • Spring笔记1——核心容器
    2023.02.16spring是一大套技术集,包括:SpringFramework:举足轻重,底层框架,被其他所有技术所依赖。SpringBoot:加速开发。SpringCloud:分布式开发。spring5.0全面支......
  • Spring Boot banner
              .::::.                 .::::::::.                :::::::::::             ..::::::......
  • SpringCloud GateWay+Nacos 集群
    新建模块gateway port:8888 POM<?xmlversion="1.0"encoding="UTF-8"?><projectxmlns="http://maven.apache.org/POM/4.0.0"xmlns:xsi="http://www.w......
  • springdata(jpa)的基础使用
    jpa与mybatis-plus类似,都属于数据库相关的框架 jpa需要扫描,这里在启动类指定路径  jpa的实体类需要绑定@Entity,与mysql表映射@Table(@name="数据库表名"),为主键......
  • 【Spring AOP】【七】Spring AOP源码解析-代理对象执行过程
    1 前言不知道你现在清晰了没,我们一路从AOP的基础概念,到AOP配置的解析,到AOP在Bean的生命周期的切入时机以及创建代理的过程一步步走下来,脑瓜还清晰不,那我们是不是就该到......
  • Spring框架3--Web
    Spring框架之WebJavaweb三大组件和四大域顺便:Javaweb中的四大域,作用范围如下:PageContext<Request<Session<ServletContext(Application)域对象属性的作用范围......
  • SpringBoot+Lock4j实现高性能分布式锁
    1.简介  在分布式业务开发中,很多场景都需要添加分布式锁。在具体实践过程中,研发人员都需要自行实现,导致实现方式不统一,代码风格迥异,难以维护。  在Mybatis-Plus生态......