当前位置: 首页 > news >正文

文件批量上传,oss使用时间戳解决同名问题 以及一些sql bug

1.文件批量上传

    @ApiOperation(value = "文件批量上传")@PostMapping("/multipleImageUpload")@Transactional(rollbackFor = Exception.class)public Result multipleImageUpload(@ApiParam(name = "files",value = "文件",required = true) @RequestParam("files") MultipartFile[] files) {System.out.println("上传的图片数"+files.length);List<String> imageList = new ArrayList<>();for (MultipartFile file : files) {if (!file.getContentType().startsWith("image/")) {return new Result(4000, "只允许上传图片文件");}String filename = file.getOriginalFilename();String uploadUrl = OssUtils.upload(file,filename);imageList.add(uploadUrl);}if (imageList.isEmpty()){return new Result(4001,"您未上传图片");}return new Result(2000,"图片批量上传成功",imageList);}

1.1多文件上传时使用数组 MultipartFile[ ] files  

其中要加上@RequestParam("files") files 要和 参数列表中的参数名称一致

这类似于springMVC架构 添加web 依赖

若传入文件 会把请求头改为 multipart

1.2大坑 

由于swagger2.xx 版本 不支持多文件上传,仅支持单文件上传,多文件上传时会报错 500

2.使用时间戳进行oss上传

 public static String upload(MultipartFile file, String path) {// 创建OSSClient实例。OSS ossClient = new OSSClientBuilder().build(endPoint, accessKeyId, secretAccessKey);try {//创建唯一图片名称 + 唯一的时间戳String timeStampPath = addTimeStampToPath(path);// 创建PutObject请求。ossClient.putObject(bucketName, timeStampPath, file.getInputStream());String url = ossUrl + "/" + timeStampPath;return url;} catch (Exception e) {e.printStackTrace();return null;} finally {if (ossClient != null) {ossClient.shutdown();}}}

才开始我企图对url 进行操作 后来才发现没有啥卵用 

因为主要是通过这里面的路径来连接的 

2.1进行时间戳的拼接

    private static String addTimeStampToPath(String path) {String fileName = path;//获取文件拓展名String extension = "";int dotIndex = path.lastIndexOf(".");if(dotIndex > 0){extension = path.substring(dotIndex);fileName = path.substring(0,dotIndex);}//获取当前时间戳String timeStamp = new SimpleDateFormat("yyyyMMddHHmmss").format(new Date());return fileName +"_"+ timeStamp + extension;}

返回的时文件名+时间戳 
3.近日发现的一些bug

3.1当我的状态为0时,一查询就会查出来所有的状态值

本来是这样写的,if test ="status != null and status != '' " 这样的话传入0就会查找所有的值 
why?

想想原因应该是这样的 : 当你加入 status != "" 时,mybatis 可能会把status 判定为字符串。那 0 就是空 直接省略该选项 

3.2条件查询时已添加不查询下架的条件 但仍能查询到 

相关文章:

文件批量上传,oss使用时间戳解决同名问题 以及一些sql bug

1.文件批量上传 ApiOperation(value "文件批量上传")PostMapping("/multipleImageUpload")Transactional(rollbackFor Exception.class)public Result multipleImageUpload(ApiParam(name "files",value "文件",required true) R…...

机器学习——线性回归(sklearn)

目录 一、认识线性回归 1. 介绍 2. 多元线性回归的基本原理&#xff08;LinearRegression&#xff09; 二、多重共线性 1. 介绍 2. 多重共线性详细解释 三、岭回归&#xff08;解决多重共线性问题&#xff09; 1. 模型推导 2. 选取最佳的正则化参数取值 四、Lasso&am…...

Go 语言切片(Slice) 15

在 Go 语言中&#xff0c;切片(Slice)是一种可以容纳多个值的数据结构&#xff0c;它可以被视为一个可变的数组。切片是一个引用类型&#xff0c;它可以容纳任意类型的值&#xff0c;可以是整数、字符串、浮点数、结构体等。 切片的声明方式是使用 [] 语法&#xff0c;例如&am…...

嵌入式开发--STM32G030C8T6,写片上FLASH死机CFGBSY和写入出错

故障现象1 G0系列&#xff0c;写片上FLASH时&#xff0c;经常死机&#xff0c;而且按复位键都没用&#xff0c;属于不断电都救不回来的那种死法。这种情况一般是由硬件置位了某个标志导致&#xff0c;只有断电才能故障复原。 故障查找 检查FLASH的相关寄存器&#xff0c;发现…...

通过Fiddler抓包保存网页上的视频(包括Bilibili、B站和其他视频站)亲测可用

本文仅供学习交流用途 文中出现的信息仅为演示需要 请勿以任何方法剽窃、盗用任何视频作者的任何视频 有时候遇到一些素材想保存下来&#xff0c;但是网站不给保存&#xff0c;无论视频是否允许转载。这篇介绍一下最近发现的一个保存视频的方法。 不会介绍Fiddler了&#xf…...

企业为什么需要安装加密软件

1. 数据保护 防止数据泄露&#xff1a;加密软件通过对敏感数据进行加密处理&#xff0c;确保即使数据在传输或存储过程中被截获&#xff0c;也无法被未授权人员读取或利用&#xff0c;从而有效防止数据泄露。 完整性保护&#xff1a;加密不仅保护数据的机密性&#xff0c;还通…...

Spring Web MVC入门(下)

1. 响应 1.1 返回静态页面 创建前端页面&#xff0c;如下图所示&#xff1a; <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><title>Index页面</title> </head> <body>Hello,Spring MVC…...

uniapp app中使用柱状图 折线图 圆环图和饼图

实现思路 借助echarts.min.js 搭配l-echart进行配置 废话不多说上代码后自己百度了解配置项的意思就好 下面代码是折线图的 &#xff0c;柱状图和它一摸一样&#xff0c;只需要把line换成bar就好 <template><l-echart ref"chart"></l-echart> …...

jmreport测试数据库出现 权限不足,此功能需要分配角色 解决方法

目录 前言1. 问题所示2. 原理分析3. 解决方法前言 关于jmreport的补充可看官网:jmreport上线安全配置 1. 问题所示 jmreport测试数据库出现,出现如下所示的问题:权限不足,此功能需要分配角色! 截图如下所示: 2. 原理分析 对于原理分析的Bug,代表当前用户没有足够的…...

这是啥设计模式-适配模式

有一个广告召回系统&#xff0c;输入用户id就可以给用户推荐相应的广告&#xff0c;一开始我们只有布尔检索和向量检索两种方式。 1. 面向接口编程&#xff0c;而非实现 第一点就是定义接口&#xff0c;客户端关注的是接口&#xff0c;对客户端来说&#xff0c;他只关心检索引…...

大语言模型(LLMs)Tokenizers详解

Tokenizers是大语言模型&#xff08;Large Language Models&#xff0c;LLMs&#xff09;中用于将文本分割成基本单元&#xff08;tokens&#xff09;的工具。这些工具不仅影响模型的输入表示&#xff0c;还直接影响模型的性能和效率。以下是对Tokenizers的详细解释&#xff1a…...

分支-快排/归并---1

目录 1.排序数组 2.数组中的第K个最大元素 3.最小k个数 4.排序数组&#xff08;归并&#xff09; 5.数组中的逆序对 6.计算右侧小于当前元素的个数 7. 翻转对 1.排序数组 快排的写法有很多&#xff0c;这里我采取了相对快的三路划分加随机基准值。 三路划分&#xff0c;是…...

代码随想录训练营 Day32打卡 动态规划 part01 理论基础 509. 斐波那契数 70. 爬楼梯 746. 使用最小花费爬楼梯

代码随想录训练营 Day32打卡 动态规划 part01 一、 理论基础 动态规划中每一个状态一定是由上一个状态推导出来的&#xff0c;这一点就区分于贪心&#xff0c;贪心没有状态推导&#xff0c;而是从局部直接选最优的。 例如&#xff1a;有N件物品和一个最多能背重量为W 的背包…...

【智能流体力学】剖析ANSYS Fluent材料属性设定与边界条件

目录 一、材料属性设定**1. 材料属性的概述****功能****2. 材料属性的类型****标准材料库****多相流****燃烧模型****传热模型****辐射模型****3. 属性设置与函数****4. 自定义材料数据库****5. Granta数据库支持**二、边界条件**1. 通用边界条件****Pressure Inlet (压力-入口…...

微信小程序反编译工具

目录 介绍 工程结构还原 微信开发者工具运行 如何查看当前运行版本? 开启小程序F12 重新打包运行 效果示例 安装 用法 参数说明 获取微信小程序AppID 文件夹名即为AppID 下载地址 介绍 纯Golang实现,一个用于自动化反编译微信小程序的工具,小程序安全利器, 自…...

线程基本概念

一、进程的结束 wait(阻塞) 一般不做额外的事情 wait(非阻塞) 逻辑不受影响&#xff08;必须套在循环中&#xff09; wait作用&#xff1a;1.获取子进程退出状态 2.回收资源 传参为指针&#xff1a;被调修改主调 获取退出状态值&#xff1a; WIFEXITED 判断是否…...

在SpringBoot中执行后台任务

在 Spring Boot 中执行后台任务通常涉及到使用线程池和定时任务。Spring Boot 提供了多种方式来实现后台任务&#xff0c;包括使用 Scheduled 注解、ThreadPoolTaskExecutor 和 ExecutorService。 下面我将详细介绍如何使用这些方法来实现后台任务。 使用 Scheduled 注解 Sp…...

【网络】UDP回显服务器和客户端的构造,以及连接流程

回显服务器&#xff08;Echo Server&#xff09; 最简单的客户端服务器程序&#xff0c;不涉及到业务流程&#xff0c;只是对与 API 的用法做演示 客户端发送什么样的请求&#xff0c;服务器就返回什么样的响应&#xff0c;没有任何业务逻辑&#xff0c;没有进行任何计算或者…...

【智能流体力学】ANSYS Fluent工作流程设置、求解和后处理详解

目录 一、设置阶段1. **模型****功能** :**详细说明及原理** :2. **材料****功能** :**详细说明及原理** :3. **单元区域条件****功能** :**详细说明及原理** :4. **边界条件****功能** :**详细说明及原理** :5. **网格交界面****功能** :**详细说明及原理** :6. **动…...

最新UI六零导航系统源码 | 多模版全开源

六零导航页 (LyLme Spage) 致力于简洁高效无广告的上网导航和搜索入口&#xff0c;支持后台添加链接、自定义搜索引擎&#xff0c;沉淀最具价值链接&#xff0c;全站无商业推广&#xff0c;简约而不简单。 使用PHPMySql&#xff0c;增加后台管理 多模板选择&#xff0c;支持在…...

从入门到上岗,Java+AI 复合型人才养成攻略

当下编程行业格局正在悄然改变,纯 Java 后端岗位内卷日趋严重,薪资增长逐步放缓;纯粹的 AI 算法岗门槛居高不下,对学历、数理功底要求严苛,普通开发者很难入局。 而Java+AI 复合型开发顺势成为行业刚需岗位,既依托成熟的 Java 体系承接业务开发,又能融入人工智能技术实…...

DeepSeek基准测试避坑手册:92%开发者忽略的4大陷阱——硬件配置偏差、tokenizer不一致、batch size幻觉、温度值污染

更多请点击&#xff1a; https://codechina.net 第一章&#xff1a;DeepSeek基准测试避坑手册&#xff1a;92%开发者忽略的4大陷阱——硬件配置偏差、tokenizer不一致、batch size幻觉、温度值污染 硬件配置偏差&#xff1a;GPU显存与计算精度的隐性干扰 在A100&#xff08;8…...

Sangfor文件夹可以删除吗?【图文讲解】深信服文件夹残留清理?如何彻底删除深信服?Sangfor文件夹是什么?

&#xff08;1&#xff09;问题背景打开C盘&#xff0c;突然冒出个Sangfor 文件夹&#xff0c;占用好几个 GB 空间&#xff0c;想删又不敢删&#xff0c;怕删坏系统、断网崩溃&#xff1b;上网一查&#xff0c;说法五花八门&#xff0c;有人说是病毒&#xff0c;有人说是办公软…...

Windows Cleaner深度解析:5大核心模块彻底解决系统空间不足问题

Windows Cleaner深度解析&#xff1a;5大核心模块彻底解决系统空间不足问题 【免费下载链接】WindowsCleaner Windows Cleaner——专治C盘爆红及各种不服&#xff01; 项目地址: https://gitcode.com/gh_mirrors/wi/WindowsCleaner Windows Cleaner是一款完全免费开源的…...

车载诊断系统(OBD)的原理、演进与未来

本文约8,167字&#xff0c;建议收藏阅读 作者 | 北湾南巷 出品 | 汽车电子与软件 引 言 在现代汽车中&#xff0c;越来越多的故障不再表现为明显的机械损坏&#xff0c;而是以“亮灯”“报码”“性能异常”等电子信号的形式出现。发动机为什么亮起故障灯&#xff1f;排放是否达…...

Codex使用API Key授权无法使用插件?

小伙伴们&#xff0c;大家好&#xff0c;我是小溪&#xff0c;见字如面。对于没有ChatGPT账号的小伙伴来说&#xff0c;虽然可以通过API Key授权的方式使用Codex桌面端&#xff0c;但是会有一些限制。比如无法使用插件功能&#xff0c;无法使用Codex移动端进行远程控制等。为了…...

实战对比:用直方图均衡化与CLAHE拯救你的背光/过曝照片(附Python完整代码)

拯救逆光废片&#xff1a;直方图均衡化与CLAHE的实战效果对比每次旅行回来整理照片时&#xff0c;总会有几张因为光线问题几乎要删除的废片——要么是逆光下的人脸黑得看不清五官&#xff0c;要么是天空过曝失去所有云层细节。这些照片往往记录着重要时刻&#xff0c;直接删除实…...

实战教程:5步构建基于YOLOv5的FPS游戏智能瞄准系统

实战教程&#xff1a;5步构建基于YOLOv5的FPS游戏智能瞄准系统 【免费下载链接】FPSAutomaticAiming 基于yolov5的FPS游戏AI。 项目地址: https://gitcode.com/gh_mirrors/fp/FPSAutomaticAiming FPSAutomaticAiming是一个基于YOLOv5深度学习算法的FPS游戏自动瞄准系统&…...

3步免费解锁Cursor Pro:告别设备限制,永久享受AI编程助手高级功能

3步免费解锁Cursor Pro&#xff1a;告别设备限制&#xff0c;永久享受AI编程助手高级功能 【免费下载链接】cursor-free-vip [Support 0.45]&#xff08;Multi Language 多语言&#xff09;自动注册 Cursor Ai &#xff0c;自动重置机器ID &#xff0c; 免费升级使用Pro 功能: …...

告别硬编码!在UE5 GAS中实现动态技能键位绑定:从DataAsset配置到运行时热更新的完整流程

告别硬编码&#xff01;在UE5 GAS中实现动态技能键位绑定&#xff1a;从DataAsset配置到运行时热更新的完整流程在当代RPG游戏开发中&#xff0c;技能系统的灵活性和可配置性往往决定了项目的迭代效率。传统硬编码的键位绑定方式不仅增加了程序与策划的沟通成本&#xff0c;更在…...