springboot上传文件到后台指定文件夹

news2025/1/24 2:21:38

第一步,在application.yml做一下配置,预设下载目录

 

files:
  upload:
    path: D:/SpringBootItem/springboot/files/

其中有用到hutool工具依赖,如下在pom.xml中添加依赖,也可以选择不添加,自己修改下Controller中的代码即可

        <!-- hutool工具包 -->
        <dependency>
            <groupId>cn.hutool</groupId>
            <artifactId>hutool-all</artifactId>
            <version>5.7.20</version>
        </dependency>

 

第二步,新建一个Controller

package com.example.springboot.controller;

/**
* mybatis代码生成器配置
*/
import cn.hutool.core.io.FileUtil;
import cn.hutool.core.util.IdUtil;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource;
import java.io.File;
import java.io.IOException;

import com.example.springboot.service.IUploadLogService;

import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.multipart.MultipartFile;

/**
 * <p>
 * 上传文件
 */
@RestController
@RequestMapping("/file")
public class UploadLogController {

    /**
     * 上传到本地磁盘地址【从application.yml中获取预设置地址参数】
     */
    @Value("${files.upload.path}")
    private String fileUploadPath;

    @PostMapping("/upload")
    public String upload (@RequestParam MultipartFile file) throws IOException {

        // 获取文件参数
        String originalFilename = file.getOriginalFilename();
        String type = FileUtil.extName(originalFilename);
        long size = file.getSize();

        File uploadFiletest = new File(fileUploadPath);

        // 判断是否不存在该目录,如果是,新建一个该目录
        if (!uploadFiletest.exists()) {
            uploadFiletest.mkdirs();
        }

        // 定义一个文件的唯一标识码
        String uuid = IdUtil.fastSimpleUUID();

        // 重新拼接
        File uploadFile = new File(fileUploadPath + uuid + "." + type);

        // 进行存储到磁盘
        file.transferTo(uploadFile);

        return "1";
    }

}

效果

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1006814.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

批量采集头条号文章的工具-让我们更好地辨别信息好坏

大家好&#xff0c;今天我想和大家聊一聊一个在互联网时代备受瞩目的话题&#xff0c;那就是批量采集头条号的文章。作为一个热衷于信息获取和分享的人&#xff0c;我深知这一领域的挑战和机遇。 让我们来谈谈批量采集头条号的文章所面临的挑战。随着互联网的迅猛发展&#xff…

亚马逊API接口解析,实现获得AMAZON商品详情

要解析亚马逊API接口并实现获取亚马逊商品详情&#xff0c;你需要按照以下步骤进行操作&#xff1a; 了解亚马逊开发者中心&#xff1a;访问亚马逊开发者中心&#xff0c;并了解相关的API文档、开发者指南和规定。注册开发者账号&#xff1a;在亚马逊开发者中心上注册一个开发…

Java“牵手”京东商品详情数据,京东商品详情接口,京东API接口申请指南

京东商品详情API是京东平台提供给开发者的应用程序编程接口&#xff0c;通过API可以获取京东平台上商品详情信息。 京东商品详情API可以获取到商品的标题、价格、销量、评价、详情页等信息。开发者在京东开放平台注册开发者账号&#xff0c;并获得访问API接口的密钥后&#xf…

代码随想录算法训练营day46|139.单词拆分|多重背包基础理论| 背包总结

139.单词拆分 力扣题目链接 给定一个非空字符串 s 和一个包含非空单词的列表 wordDict&#xff0c;判定 s 是否可以被空格拆分为一个或多个在字典中出现的单词。 说明&#xff1a; 拆分时可以重复使用字典中的单词。 你可以假设字典中没有重复的单词。 示例 1&#xff1a…

关于批量安装多个apk

for %i in (apks地址/*.apk); do adb install %i https://www.cnblogs.com/lihongtaoya/p/15084378.html adb install -r apks地址/1.apk && adb install -r apks地址/2.apk install-multi-package - 暂时nok https://adbshell.com/commands 最新版本的platform-tool…

Dinky上路之旅

1、部署flink集群 1.1、flink-conf.yaml cat > flink-conf.yaml << EOF jobmanager.rpc.address: boshi-146 jobmanager.rpc.port: 6123 jobmanager.bind-host: 0.0.0.0 jobmanager.memory.process.size: 1600m taskmanager.bind-host: 0.0.0.0 # 修改为本机ip tas…

今日宜分享:科技十足主页面的高校官网颜值排行榜

科技十足主页面的高校官网颜值排行榜 全国985名单&#xff08;最新&#xff09;1. 北京&#xff08;8所&#xff09;2. 上海&#xff08;4所&#xff09;3. 湖南&#xff08;3所&#xff09;4. 陕西&#xff08;3所&#xff09;5. 湖北&#xff08;2所&#xff09;6. 山东&…

postgresql如何关闭自动提交设置

问题&#xff1a;代码运行报错&#xff1a; Caused by: org.postgresql.util.PSQLException: Cannot commit when autoCommit is enabled. 解决方法&#xff1a;修改postgresql配置文件&#xff0c;关闭自动提价设置

机器学习:PCA(Principal Component Analysis主成分)降维

参考&#xff1a;PCA降维原理 操作步骤与优缺点_TranSad的博客-CSDN博客 PCA降维算法_偶尔努力翻身的咸鱼的博客-CSDN博客 需要提前了解的数学知识&#xff1a; 一、PCA的主要思想 PCA&#xff0c;即主成分分析方法&#xff0c;是一种使用最广泛的数据降维算法。PCA的主要思想…

centerOS连不上网解决办法

1、检查路由 route -n如果你缺失第一个路由&#xff0c;是肯定无法ping通外网的。 2、添加dns # vim /etc/resolv.conf nameserver 8.8.8.83、在/etc/resolv.conf文件添加路由 route add default gw 192.168.0.14、重启网卡 service network restart

KT142C-sop16语音芯片的4个IO口如何一对一触发播放_配置文件详细说明

目录 KT142C是一个提供串口的SOP16语音芯片&#xff0c;完美的集成了MP3的硬解码。内置330KByte的空间&#xff0c;最大支持330秒的语音长度&#xff0c;支持多段语音&#xff0c;支持直驱0.5W的扬声器无需外置功放 如上图&#xff0c;芯片有4个IO口可以一对一&#xff0c;详…

服务器数据恢复-热备盘同步过程中硬盘离线的RAID5数据恢复案例

服务器数据恢复环境&#xff1a; 华为OceanStor某型号存储&#xff0c;11块硬盘组建了一组RAID5阵列&#xff0c;另外1块硬盘作为热备盘使用。基于RAID5阵列的LUN分配给linux系统使用&#xff0c;存放Oracle数据库。 服务器故障&#xff1a; RAID5阵列1块硬盘由于未知原因离线…

线程详细解析

本文重点: 目录 什么是线程? 线程共享和非共享资源 线程的优缺点 多线程 线程池 Java创建线程池 什么是线程? 线程是操作系统调度和执行的基本单位,线程和进程一样也有PCB 一个进程必定会有一个线程 在Linux内核中是不会区分进程和线程的,只在用户层面区分 线程共享…

新手询问想要成功学好嵌入式开发有什么建议吗?

今日话题&#xff0c;想要成功学好嵌入式开发有什么建议吗&#xff1f;想要学好的话选择一门合适的编程语言是关键。虽然嵌入式开发支持多种语言&#xff0c;但C和C仍然是最常用的。如果你是初学者&#xff0c;从学习C语言开始是一个不错的选择。它相对容易学习&#xff0c;而且…

基于Python开发的智能停车场车牌识别计费系统(源码+可执行程序+程序配置说明书+程序使用说明书)

一、项目简介 本项目是一套基于Python开发的智能停车场车牌识别计费系统&#xff0c;主要针对计算机相关专业的正在做毕设的学生与需要项目实战练习的Python学习者。 包含&#xff1a;项目源码、项目文档等&#xff0c;该项目附带全部源码可作为毕设使用。 项目都经过严格调试…

教你制作作业查询系统

嗨&#xff0c;各位老师们&#xff0c;今天我要给你们介绍一个超级方便的工具——易查分&#xff01;你知道吗&#xff0c;利用易查分&#xff0c;我们可以轻松制作一个便捷高效的作业查询系统哦&#xff01; 是不是想有个自己的分班or成绩查询页面&#xff1f;博主给老师们争取…

​重生奇迹失落之塔三-四层刷怪攻略​

重生奇迹中的失落之塔一共是八层&#xff0c;每一层均需玩家达到相应的等级后方可进入&#xff0c;等级不到&#xff0c;谢绝入内&#xff0c;甚至有时即便你的等级达标&#xff0c;在里面刷一会怪之后&#xff0c;便自动地退去&#xff0c;因为这里面的怪物绝非等闲之辈&#…

再也不想去阿里巴巴面试了,6年测开面试遭到这样打击.....

前几天我朋友跟我吐苦水&#xff0c;这波面试又把他打击到了&#xff0c;做了快6年软件测试员。。。为了进大厂&#xff0c;也花了很多时间和精力在面试准备上&#xff0c;也刷了很多题。但题刷多了之后有点怀疑人生&#xff0c;不知道刷的这些题在之后的工作中能不能用到&…

智能新零售系统如何选择?连锁商超新零售POS解决方案优势?亿发

互联网的迅速发展&#xff0c;越来越多的实体门店发觉线上线上同步发展的“新零售“才是未来的大势所趋。那么智能新零售系统如何选择&#xff1f;新零售POS管理系统解决方案的优势有哪些? 一、智能新零售系统如何选择&#xff1f; 1、便于使用的基础数据排序功能 在新零售时…