Spring boot实现上传文件到本地服务器


Posted in Java/Android onAugust 14, 2022

本文实例为大家分享了Spring boot实现上传文件到本地服务器的具体代码,供大家参考,具体内容如下

引入配置

UploadFileConfig类

@Configuration
public class UploadFileConfig {
       @Value("${file.uploadFolder}")
        private String uploadFolder;
 
        @Bean
        MultipartConfigElement multipartConfigElement() {
            MultipartConfigFactory factory = new MultipartConfigFactory();
            factory.setLocation(uploadFolder);
            //文件最大
            factory.setMaxFileSize("20MB");
            return factory.createMultipartConfig();
        }
}

UploadFilePathConfig类

@Configuration
public class UploadFilePathConfig extends WebMvcConfigurerAdapter {
    @Value("${file.staticAccessPath}")
    private String staticAccessPath;
    @Value("${file.uploadFolder}")
    private String uploadFolder;
    @Override
    public void addResourceHandlers(ResourceHandlerRegistry registry) {
        registry.addResourceHandler(staticAccessPath).addResourceLocations("file:" + uploadFolder);
    }
}

在application.properties加上传的配置项

#文件服务本地rest请求对外地址
file.staticAccessPath=/upload/**
#文件上传目录(注意Linux和Windows上目录结构不同)需要改成你自己的实际目录
file.uploadFolder=/Users/leichunhong/Documents/hlp/zx/
#上传文件本地域名 改写成你后端服务的地址和端口
file.upload.nama=http://127.0.0.1:9090
#springBOOt上传文件大小
# 单个文件的最大值
spring.servlet.multipart.max-file-size = 10MB
# 上传文件总的最大值
spring.servlet.multipart.max-request-size=100MB

编写上传controller

@RestController
@RequestMapping("/test")
public class UploadController {
 
    @Value("${file.uploadFolder}")
    private String uploadFolder;
 
    @Value("${file.staticAccessPath}")
    private String staticAccessPath;
 
    @Value("${file.upload.nama}")
    private String reurl;
 
    @RequestMapping(value = "/upload", method = {RequestMethod.POST, RequestMethod.GET})
    public List<String> upload(HttpServletRequest request) throws MultipartException {
        String path = "";
        List<String> ksfs = new ArrayList<>();
        //1 需传imgUrl 其他值就是传file文件上传
        try {
            //将当前上下文初始化给  CommonsMutipartResolver (多部分解析器)
            CommonsMultipartResolver multipartResolver = new CommonsMultipartResolver(
                    request.getSession().getServletContext());
 
            //检查form中是否有enctype="multipart/form-data"
            if (multipartResolver.isMultipart(request)) {
                //将request变成多部分request
                MultipartHttpServletRequest multiRequest = (MultipartHttpServletRequest) request;
                //获取multiRequest 中所有的文件名
                Iterator<String> iter = multiRequest.getFileNames();
 
                while (iter.hasNext()) {
                    //多个文件上传
                    List<MultipartFile> fileList = multiRequest.getFiles(iter.next());
                    for (MultipartFile multipartFile : fileList) {
                        String realPath = uploadFolder;
                        String trueFileName = System.currentTimeMillis() + "." + FilenameUtils.getExtension(multipartFile.getOriginalFilename());
                        // 设置存放图片文件的路径
                        path = realPath + trueFileName;
                        File file = new File(path);
                        multipartFile.transferTo(file);
                        path = reurl + "/upload/" + trueFileName;
                        ksfs.add(path);
                    }
                    //单个文件
                       /* MultipartFile multipartFile=multiRequest.getFile(iter.next().toString());
                        if (multipartFile != null) {
                            excelFile = File.createTempFile(prefix, ".jpg");
                            multipartFile.transferTo(excelFile);
                            path = KSFileSave.uploadFile(prefix, excelFile, "jpg");
                            ksfs.add(path);
                       }*/
 
                }
            }
        } catch (Exception e) {
            e.printStackTrace();
        } finally {
        }
        return ksfs;
    }
 
}

调用接口测试,用如下的html页面

<form method="POST" enctype="multipart/form-data" action="http:127.0.0.1:9090/test/upload">
        <table>
            <tr><td>File to upload:</td><td><input type="file" name="file" /></td></tr>
            <tr><td></td><td><input type="submit" value="Upload" /></td></tr>
        </table>
</form>

Spring boot实现上传文件到本地服务器

点击选择文件上传验证返回结果

Spring boot实现上传文件到本地服务器

查看上传目录

Spring boot实现上传文件到本地服务器

点击返回接口访问

Spring boot实现上传文件到本地服务器

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Java/Android 相关文章推荐
Java 将PPT幻灯片转为HTML文件的实现思路
Jun 11 Java/Android
教你用Java在个人电脑上实现微信扫码支付
Jun 13 Java/Android
SpringBoot项目中控制台日志的保存配置操作
Jun 18 Java/Android
springboot拦截器无法注入redisTemplate的解决方法
Jun 27 Java/Android
Java 语言中Object 类和System 类详解
Jul 07 Java/Android
Java比较两个对象中全部属性值是否相等的方法
Aug 07 Java/Android
logback 实现给变量指定默认值
Aug 30 Java/Android
Java 在生活中的 10 大应用
Nov 02 Java/Android
java后台调用接口及处理跨域问题的解决
Mar 24 Java/Android
springboot用户数据修改的详细实现
Apr 06 Java/Android
Android 界面一键变灰 深色主题工具类
Apr 28 Java/Android
Android开发手册Chip监听及ChipGroup监听
Jun 10 Java/Android
Spring Boot实现文件上传下载
Aug 14 #Java/Android
Springboot集成kafka高级应用实战分享
spring boot实现文件上传
Aug 14 #Java/Android
Java使用HttpClient实现文件下载
Aug 14 #Java/Android
HttpClient实现表单提交上传文件
Aug 14 #Java/Android
HttpClient实现文件上传功能
Aug 14 #Java/Android
SpringBoot Http远程调用的方法
Aug 14 #Java/Android
You might like
第五节 克隆 [5]
2006/10/09 PHP
php header()函数使用说明
2008/07/10 PHP
CentOS安装php v8js教程
2015/02/26 PHP
CI框架(CodeIgniter)实现的导入、导出数据操作示例
2018/05/24 PHP
php提高脚本性能的4个技巧
2020/08/18 PHP
jQuery 表格插件整理
2010/04/27 Javascript
js获取通过ajax返回的map型的JSONArray的方法
2014/01/09 Javascript
js实现浏览器窗口大小被改变时触发事件的方法
2015/02/02 Javascript
javascript元素动态创建实现方法
2015/05/13 Javascript
灵活的理解JavaScript中的this指向
2016/02/25 Javascript
Sea.JS知识总结
2016/05/05 Javascript
Vue数据驱动模拟实现5
2017/01/13 Javascript
NW.js 简介与使用方法
2018/02/01 Javascript
vue项目中使用lib-flexible解决移动端适配的问题解决
2018/08/23 Javascript
详解CommonJS和ES6模块循环加载处理的区别
2018/12/26 Javascript
python中元类用法实例
2014/10/10 Python
python获得文件创建时间和修改时间的方法
2015/06/30 Python
Python 登录网站详解及实例
2017/04/11 Python
python决策树之CART分类回归树详解
2017/12/20 Python
Python解决抛小球问题 求小球下落经历的距离之和示例
2018/02/01 Python
关于python列表增加元素的三种操作方法
2018/08/22 Python
解决Python plt.savefig 保存图片时一片空白的问题
2019/01/10 Python
使用sklearn的cross_val_score进行交叉验证实例
2020/02/28 Python
Django实现任意文件上传(最简单的方法)
2020/06/03 Python
通过Python实现Payload分离免杀过程详解
2020/07/13 Python
Python collections模块的使用方法
2020/10/09 Python
美国购买汽车零件网站:Buy Auto Parts
2018/04/02 全球购物
波兰在线体育用品商店:Hop-Sport.pl
2019/07/23 全球购物
总经理人事任命书
2014/06/05 职场文书
应聘护士求职信
2014/07/21 职场文书
个人投资合作协议书
2014/10/12 职场文书
《改造我们的学习》心得体会
2014/11/07 职场文书
2014年结对帮扶工作总结
2014/12/17 职场文书
餐厅服务员岗位职责
2015/02/09 职场文书
用python画城市轮播地图
2021/05/28 Python
Python基础之条件语句详解
2021/06/16 Python