开发者社区> 科技探索者> 正文
阿里云
为了无法计算的价值
打开APP
阿里云APP内打开

springBoot(10):web开发-文件上传

简介:
+关注继续查看

一、简介

Spring Boot默认使用springMVC包装好的解析器进行上传

二、代码实现

2.1、from表单

1
2
3
4
<form method="POST" enctype="multipart/form-data" action="/file/upload">
    文件:<input type="file" name="roncooFile" />
    <input type="submit" value="上传" />
</form>

2.2、controller

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
package com.example.demo.controller;
 
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.multipart.MultipartFile;
 
import java.io.File;
import java.io.IOException;
 
/**
 * 文件上传
 * @Author: 我爱大金子
 * @Description: 文件上传
 * @Date: Created in 11:08 2017/6/18
 */
@Controller
@RequestMapping(value = "/file")
public class FileController {
    private static final Logger logger = LoggerFactory.getLogger(FileController.class);
    @RequestMapping(value = "/upload")
    @ResponseBody
    public String upload(@RequestParam("roncooFile") MultipartFile file) {
        if (file.isEmpty()) {
            return "文件为空";
        }
        // 获取文件名
        String fileName = file.getOriginalFilename();
        logger.info("上传的文件名为:" + fileName);
        // 获取文件的后缀名
        String suffixName = fileName.substring(fileName.lastIndexOf("."));
        logger.info("上传的后缀名为:" + suffixName);
        // 文件上传路径
        String filePath = "G:/workspace/file_space/img/";
        // 解决中文问题,liunx 下中文路径,图片显示问题
        //fileName = UUID.randomUUID() + suffixName;
        File dest = new File(filePath + fileName);
        // 检测是否存在目录
        if (!dest.getParentFile().exists()) {
            dest.getParentFile().mkdirs();
        }
        try {
            file.transferTo(dest);
            return "上传成功";
        catch (IllegalStateException e) {
            e.printStackTrace();
        catch (IOException e) {
            e.printStackTrace();
        }
        return "上传失败";
    }
}

2.3、application.properties

1
2
3
4
5
6
7
8
9
10
#默认支持文件上传
spring.http.multipart.enabled=true
#支持文件写入磁盘.
spring.http.multipart.file-size-threshold=0
#上传文件的临时目录
spring.http.multipart.location=G:/workspace/file_space/temp
# 最大支持文件大小
spring.http.multipart.max-file-size=1Mb
#最大支持请求大小
spring.http.multipart.max-request-size=10Mb

三、测试

wKiom1lGEl3x3-7CAAA89dPRYVA214.jpg

wKioL1lGEoeC-lx1AAAi-mcwfwc202.jpg

wKiom1lGErDDFc_aAABiia67UiQ192.jpg

本文转自我爱大金子博客51CTO博客,原文链接http://blog.51cto.com/1754966750/1939485如需转载请自行联系原作者


我爱大金子

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
SpringBoot文件上传和下载
SpringBoot文件上传和下载
65 0
SpringBoot文件上传下载
SpringBoot文件上传下载
62 0
SpringBoot文件上传下载
项目中经常会有上传和下载的需求,这篇文章简述一下springboot项目中实现简单的上传和下载。 新建springboot项目,前台页面使用的thymeleaf模板,其余的没有特别的配置,pom代码如下: 4.
3985 0
SpringBoot 文件上传/下载
有啥不懂的或者出错的可以在下面留言。 1. 文件上传 //上传路径 String folder = "C:\\code\\springboot-springsecurity\\security-demo\\src\\main\\java...
1867 0
(Redis使用系列) Springboot 使用redis实现接口Api限流 十
(Redis使用系列) Springboot 使用redis实现接口Api限流 十
56 0
Springboot整合redis(一般人都能看懂的Lettuce版本)
去年学习的Redis,刚刚学习完就迫不及待的在实战中用了一下,走了很多坑不过幸好都填上了,需求的不断变化发现用不上Redis,一开始去掉了,后来想想加进来比较合适。这篇文章主要讲解Springboot如何整合开发Redis实现一个基本的案例。使用的是目前Springboot2.x的Lettuce版本。希望对你有帮助。
117 0
Springboot 集成 Redis 安装,部署以及应用
Redis 是完全开源免费的,遵守BSD协议,是一个高性能的key-value数据库。 Redis支持数据的持久化,可以将内存中的数据保存在磁盘中,重启的时候可以再次加载进行使用。 Redis不仅仅支持简单的key-value类型的数据,同时还提供list,set,zset,hash等数据结构的存储。 Redis支持数据的备份,即master-slave模式的数据备份。
25 0
SpringBoot整合Redis使用教程
Redis是现在最受欢迎的NoSQL数据库之一,Redis是一个使用ANSI C编写的开源、包含多种数据结构、支持网络、基于内存、可选持久性的键值对存储数据库,其具备如下特性:
56 0
SpringBoot 实战 (二十)| 整合 Redis
SpringBoot 实战 (二十)| 整合 Redis
57 0
5487
文章
0
问答
文章排行榜
最热
最新
相关电子书
更多
低代码开发师(初级)实战教程
立即下载
阿里巴巴DevOps 最佳实践手册
立即下载
冬季实战营第三期:MySQL数据库进阶实战
立即下载