文档章节

springboot单个文件、多个文件上传

阿恒灬
 阿恒灬
发布于 2017/04/07 16:01
字数 231
阅读 25
收藏 0

模板使用的是thymeleaf

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8"/>
    <title>Title</title>
</head>
<body>
<form method="POST" enctype="multipart/form-data" action="/upload">
    <p>文件1:<input type="file" name="myfile"/></p>
    <p><input type="submit" value="单个上传"/></p>
</form>
<br/>
<form method="POST" enctype="multipart/form-data" action="/batch/upload">
    <p>文件1:<input type="file" name="file"/></p>
    <p>文件2:<input type="file" name="file"/></p>
    <p>文件3:<input type="file" name="file"/></p>
    <p><input type="submit" value="多个上传"/></p>
</form>
</body>
</html>

controller

@Controller
public class FileController {
    String filePath = "H://upload//";

    /**
     * 上传页面
     * @return
     */
    @RequestMapping("/")
    public String toIndex() {
        return "upload";
    }

    /**
     * 单个文件上传
     * @param file
     * @return
     */
    @PostMapping("/upload")
    @ResponseBody
    public String uploadFile(@RequestParam("myfile") MultipartFile file) {
        if (!ObjectUtils.isEmpty(file)) {
            upload(file);
            return "successful";
        } else {
            return "file is empty....";
        }
    }

    /**
     * 多个文件上传
     * @param request
     * @return
     */
    @PostMapping("/batch/upload")
    @ResponseBody
    public String uploadFiles(HttpServletRequest request) {
        List<MultipartFile> fileList = ((MultipartHttpServletRequest) request).getFiles("file");
        fileList.stream().filter(file -> !ObjectUtils.isEmpty(file)).forEach(this::upload);
        return "successful";
    }

    private void upload(MultipartFile file) {
        String filename = file.getOriginalFilename();
        File dest = new File(filePath + filename);
        if (!dest.getParentFile().exists()) {
            dest.getParentFile().mkdirs();
        }
        try {
            file.transferTo(dest);
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

完整代码

© 著作权归作者所有

共有 人打赏支持
阿恒灬
粉丝 3
博文 39
码字总数 29389
作品 0
杭州
程序员
私信 提问
SpringBoot文件上传下载

项目中经常会有上传和下载的需求,这篇文章简述一下springboot项目中实现简单的上传和下载。 新建springboot项目,前台页面使用的thymeleaf模板,其余的没有特别的配置,pom代码如下: 前台页...

dalaoyang
2018/04/10
0
0
恒宇少年/spring-boot-chapter

简书整套文档以及源码解析 专题 专题名称 专题描述 001 Spring Boot 核心技术 讲解SpringBoot一些企业级层面的核心组件 002 Spring Cloud 核心技术 对Spring Cloud核心技术全面讲解 003 Quer...

恒宇少年
2018/04/19
0
0
spring、springMvc、springBoot和springCloud的联系与区别

版权声明:本文为博主原创文章,如需转载,请标明出处。 https://blog.csdn.net/alan_liuyue/article/details/80656687 spring和springMvc: 1. spring是一个一站式的轻量级的java开发框架,...

尘光掠影
2018/06/11
0
0
Java B2B2C多用户商城 springboot架构-spring、springMvc、springBoot和springCloud的联系与区别

spring、springMvc、springBoot和springCloud的联系与区别 需要JAVA Spring Cloud大型企业分布式微服务云构建的B2B2C电子商务平台源码请加企鹅求求 :二一四七七七五六三三 spring和springM...

it菲菲
2018/12/18
0
0
springboot(十八):使用Spring Boot集成FastDFS

上篇文章介绍了如何使用Spring Boot上传文件,这篇文章我们介绍如何使用Spring Boot将文件上传到分布式文件系统FastDFS中。 这个项目会在上一个项目的基础上进行构建。 1、pom包配置 我们使用...

ityouknow
2018/10/28
0
0

没有更多内容

加载失败,请刷新页面

加载更多

Linux iptables之mangle表使用案例

mangle表的用途 mangle表的主要功能是根据规则修改数据包的一些标志位,以便其他规则或程序可以利用这种标志对数据包进行过滤或策略路由。 mangel表使用示例 示例1-策略路由1 内网的客户机通...

月下狼
33分钟前
2
0
OSChina 周日乱弹 —— 兼职我想去学学布偶戏

Osc乱弹歌单(2019)请戳(这里) 【今日歌曲】 @clouddyy : 《火炎 - 女王蜂》 《火炎 - 女王蜂》 手机党少年们想听歌,请使劲儿戳(这里) @小鱼丁 :还在睡觉突然接到一个小哥哥电话“x...

小小编辑
45分钟前
42
3
租房软件隐私保护如同虚设

近日,苏州市民赵先生向江苏新闻广播新闻热线025-84658888反映,他在“安居客”手机应用软件上浏览二手房信息,并且使用该软件自动生成的虚拟号码向当地一家中介公司进行咨询。可电话刚挂不久...

linux-tao
今天
3
0
分布式项目(五)iot-pgsql

书接上回,在Mapping server中,我们已经把数据都整理好了,现在利用postgresql存储历史数据。 iot-pgsql 构建iot-pgsql模块,这里我们写数据库为了性能考虑不在使用mybatis,换成spring jd...

lelinked
今天
6
0
一文分析java基础面试题中易出错考点

前言 这篇文章主要针对的是笔试题中出现的通过查看代码执行结果选择正确答案题材。 正式进入题目内容: 1、(单选题)下面代码的输出结果是什么? public class Base { private Strin...

一看就喷亏的小猿
今天
2
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部