springboot中的照片上传工具类
2024-08-29 23:10:33
public class UploadImgUtils { private static String savePath = ""; /**
* 上传照片工具类
*
* @param file 文件
* @param workNo 工单号
* @param property 配置的环境(dev,prod,test)
* @return
* @throws OperationException
*/
public static String uploadImg(MultipartFile file, String workNo, String property) throws OperationException {
if (file == null) {
throw new OperationException(ReturnCodeEnum.OPERATION_IMG_IS_NULL);
}
if (file.getSize() > 1024 * 1024 * 1) {
throw new OperationException(ReturnCodeEnum.OPERATION_IMG_SIZE_LARGE);
}
//获取文件后缀
String suffix = file.getOriginalFilename().substring(file.getOriginalFilename().lastIndexOf(".") + 1);
if (!"jpg,jpeg,gif,png".toUpperCase().contains(suffix.toUpperCase())) {
throw new OperationException(ReturnCodeEnum.OPERATION_IMG_FORM_ERROR);
}
//对savePath进行过赋值
getProperties(property);
File savePathFile = new File(savePath);
if (!savePathFile.exists()) {
//若不存在该目录,则创建目录
savePathFile.mkdir();
}
//用工单号作为唯一的标识符
String filename = workNo + "." + suffix;
try {
//将文件保存指定目录
file.transferTo(new File(savePath + filename));
} catch (Exception e) {
throw new OperationException(e, ReturnCodeEnum.OPERATION_SAVE_IMG_ERROR);
}
//返回文件名称
return savePath + filename;
} /**
* 读取配置文件中的信息.
*
* @return
*/
private static void getProperties(String name) {
YamlPropertiesFactoryBean factoryBean = new YamlPropertiesFactoryBean();
factoryBean.setResources(new ClassPathResource("application-" + name + ".yml"));
factoryBean.afterPropertiesSet();
Properties object = factoryBean.getObject();
savePath = (String) object.get("operation.savePath");
}
}
上面的上传文件,下面的方法是用来获取环境变量的配置文件
最新文章
- 探索UDP套接字编程
- H5移动端页面设计心得分享
- High购电商系统开发注意点
- js整理1
- Swift3.0语言教程分割字符串与截取字符串
- 项目管理软件之易度1.5,禅道2.0,redmine1.2(附redmine1.2的安装)
- iOS - CoreMotion
- Q4: Two Sum
- POJ 3666 Making the Grade (DP)
- make clean与make distclean的区别
- angularjs指令中的compile与link函数详解
- 单链表数据结构 - java简单实现
- influxDB和grafana
- css3动画功能介绍
- OWASP移动安全漏洞Top 10
- BASIC-24_蓝桥杯_龟兔赛跑预测
- MQ环境的搭建
- Linux下QTCreator代码自动补全(是真的自动补全,不是手动触发)
- 问题004:如何在windows中打开命令行,有几种方法?
- Hibernate中表与表之间的关联多对多,级联保存,级联删除
热门文章
- 监控redis命令 - monitor
- IOR and mdtest - measure parallel file system I/O performance at both the POSIX and MPI-IO level.
- 如何在mysql数据库生成百万条数据来测试页面加载速度
- 第05组 Beta冲刺(2/4)
- WPF 动态列(DataGridTemplateColumn) 绑定数据 (自定义控件)
- Nginx之负载均衡 :两台服务器均衡(填坑)
- python接口自动化10-excel设计模式实战
- 基于 HTML5 WebGL 构建智能城市 3D 场景
- asp.net 关于gridview使用的一些小技巧
- 投色子--html demo