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");
}
}

上面的上传文件,下面的方法是用来获取环境变量的配置文件

springboot中的照片上传工具类的更多相关文章

  1. spring mvc 文件上传工具类

    虽然文件上传在框架中,已经不是什么困难的事情了,但自己还是开发了一个文件上传工具类,是基于springmvc文件上传的. 工具类只需要传入需要的两个参数,就可以上传到任何想要上传的路径: 参数1:Ht ...

  2. spring boot 文件上传工具类(bug 已修改)

    以前的文件上传都是之前前辈写的,现在自己来写一个,大家可以看看,有什么问题可以在评论中提出来. 写的这个文件上传是在spring boot 2.0中测试的,测试了,可以正常上传,下面贴代码 第一步:引 ...

  3. 文件上传工具类 UploadUtil.java

    package com.util; import java.io.BufferedInputStream; import java.io.BufferedOutputStream; import ja ...

  4. FastDFS 文件上传工具类

    FastDFS文件上传工具类 import org.csource.common.NameValuePair; import org.csource.fastdfs.ClientGlobal; imp ...

  5. 获取Spring容器中Bean实例的工具类(Java泛型方法实现)

    在使用Spring做IoC容器的时候,有的类不方便直接注入bean,需要手动获得一个类型的bean. 因此,实现一个获得bean实例的工具类,就很有必要. 以前,写了一个根据bean的名称和类型获取b ...

  6. commons-collections包中的常用的工具类

    commons-collections包中的常用的工具类 <dependency> <groupId>commons-collections</groupId> & ...

  7. Hutool中那些常用的工具类和方法

    Hutool中那些常用的工具类和方法 Hutool是一个Java工具包,它帮助我们简化每一行代码,避免重复造轮子.如果你有需要用到某些工具方法的时候,不妨在Hutool里面找找,可能就有.本文将对Hu ...

  8. SpringBoot整合Redis及Redis工具类撰写

            SpringBoot整合Redis的博客很多,但是很多都不是我想要的结果.因为我只需要整合完成后,可以操作Redis就可以了,并不需要配合缓存相关的注解使用(如@Cacheable). ...

  9. SpringBoot整合Redis并完成工具类

    SpringBoot整合Redis的资料很多,但是我只需要整合完成后,可以操作Redis就可以了,所以不需要配合缓存相关的注解使用(如@Cacheable),而且我的系统框架用的日志是log4j,不是 ...

随机推荐

  1. 小程序登录解密用户数据encryptedData -41001: encodingAesKey 非法

    问题: 做小程序微信授权登录,先获取code,然后去获取到session_key和open_id,再拿到encryptedData,传到服务器去解密拿到用户信息,但是有时成功,有时返回-41001错误 ...

  2. day89_11_11Flask启动,配置,路由,fbv和cbv

    一.flask的形成. flask是一个基于python并且以来jinja2模板和werkzeug wsgi服务器的一个微型框架. 安装了flask模块就代表安装了wekzeug,所以先安装flask ...

  3. AcWing 77. 翻转单词顺序

    习题地址 https://www.acwing.com/problem/content/description/73/ 题目描述输入一个英文句子,翻转句子中单词的顺序,但单词内字符的顺序不变. 为简单 ...

  4. 改编《OI抄》

    最近经历的事情比较多,网上常常流传着<锦鲤抄>修改版,于是就再修改了修改,就能唱起来了. 算是一种情怀吧. 请欣赏: OI抄 作词:某些dar佬 FYHSSGSS ssdfzhyf 作曲: ...

  5. WPF DataGrid 双击行 获得绑定数据

    原文:WPF DataGrid 双击行 获得绑定数据 1)增加事件 2)增加对象获取 1)事件代码 Datagrid 增加事件 MouseDoubleClick="dataGrid_Mous ...

  6. Educational Codeforces Round 76 (Rated for Div. 2) A. Two Rival Students 水题

    A. Two Rival Students There are

  7. 如何将Azure SQL 数据库还原到本地数据库实例中

    原文:https://www.jerriepelser.com/blog/restore-sql-database-localdb/ 原文作者: Jerrie Pelser 译文:如何将Azure S ...

  8. Linux 部署 nginx

    nginx搭建 1. 清除之前nginx环境 #查看nginx进程 ps -ef|grep nginx #找到nginx相对应的位置 whereis nginx #停止nginx服务 /usr/loc ...

  9. [转]使用IConfigureNamedOptions和ConfigureAll配置命名选项

    这是我上一篇关于在ASP.NET Core 2.x中使用多个强类型设置实例的后续文章.在文章的结尾,我介绍了命名选项的概念,该选项已添加到ASP.NET Core 2.0中.在本文中,我将详细介绍如何 ...

  10. 使用maven快速入门

    Maven 基础知识 官网: 传送门 Maven 项目结构 $ MavenProject |-- pom.xml |-- src | |-- main | | `-- java | | `-- res ...