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. ORM优化查询、choices参数

    目录 ORM查询优化 only与defer select_related和prefetch_related MTV与MVC模型 choices参数 ORM查询优化 only与defer res = m ...

  2. netperf 网络测试工具

    软件介绍: netperf是惠普公司开源的一款针对网络性能的测试工具,主要基于TCP或UDP的传输.根据应用的不同,可以进行批量数据传输(bulk data transfer)模式和请求/应答(req ...

  3. 飞思卡尔K60时钟分析

    推荐:NXP官方软件config tool,图形化界面可导出代码 K60芯片的时钟系统由振荡器(OSC).实时振荡器(RTC OSC).多功能时钟发生器(MCG).系统集成模块(SIM)和电源管理器( ...

  4. java8一些语法使用例子

    package com.ladeng.jdk8; import com.google.common.collect.Lists;import java.util.*;import java.util. ...

  5. WinFrom和WebFrom的区别

    原文链接:https://blog.csdn.net/sloder/article/details/6145169 一是Winform的定位机制没有Webform丰富,web里有table,div(浮 ...

  6. 201871010131-张兴盼《面向对象程序设计(java)》第一周学习总结

    项目 内容 这个作业属于哪个课程 https://www.cnblogs.com/nwnu-daizh/ 这个作业的要求在哪里 https://edu.cnblogs.com/campus/xbsf/ ...

  7. 201871010123-吴丽丽《面向对象程序设计(Java)》第十二周学习总结

    201871010123-吴丽丽<面向对象程序设计(Java)>第十二周学习总结 项目 内容 这个作业属于哪个课程  https://www.cnblogs.com/nwnu-daizh/ ...

  8. WPF 精修篇 自定义控件

    原文:WPF 精修篇 自定义控件 自定义控件 因为没有办法对界面可视化编辑 所以用来很少 现在实现的是 自定义控件的 自定义属性 和自定义方法 用VS 创建自定义控件后 会自动创建 Themes 文件 ...

  9. 关于scanf的一些知识

    10.22,对现阶段已知道的scanf的一些用法或注意事项的一些总结: 1.scanf中,赋值的那个数据前面一定加&! 2.若情景要求必须输入空格的,scanf("%d%c%d&qu ...

  10. ajax成功请求到后台(进断点),但是浏览器控制台报404错误!

    向Controller发送请求,进入断点且走到最后一步,中间也没有报错.但是,结果没有成功响应,浏览器控制台报404. 原因:忘记加@ResponseBody,spring对返回值映射时找不到对应的视 ...