package com.rscode.credits.util;

import java.io.File;
import java.io.IOException;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Date;
import java.util.List; import org.apache.commons.io.FileUtils;
import org.springframework.web.multipart.MultipartFile;
/**
* 图片工具
* @author tn
* @RequestParam("file")CommonsMultipartFile file
*
*/ public class ImageUtil { private static List<String> image = new ArrayList<>(Arrays.asList("PNG","JPEG","JPG","GIF","BMP")); /**
* 上传图片文件(PNG,JPEG,JPG,GIF)
* @param file 文件
* @param imagePath 图片存储路径
* @return newFileNamePath返回文件的相对路径 (自定义目录/xx.jpg)
* return null 没有图片
* return erro 图片格式有误
* return excp 上传失败
* return 返回文件名
*/
public static String filePut(MultipartFile file,String imagePath){
//获取前端文件名
String fileName = file.getOriginalFilename();//获取上传文件的文件名
String end = fileName.substring(fileName.lastIndexOf(".")+1).toUpperCase();//判断图片后缀是否正确 if(file.isEmpty()){//fileName.equals("")||fileName==null
System.out.println("没有图片");
return null;
}else if(image.contains(end)){
String newFileName =new Date().getTime()+"."+end; // 新文件名 end后缀
File f = new File(imagePath);
if (!f.exists()) //服务器中文件不存在就创建
f.mkdirs();
if (!file.isEmpty()) { //文件不为空
try {
//保存文件
file.transferTo(new File(imagePath + newFileName));
} catch (Exception e) {
e.printStackTrace();
return "excp";
}
}
return newFileName;//返回图片新名字
} else { return "erro";
} } /**
* 到存放图片的文件夹下面删除图片
*
* @param fileName
* @return
*/
public static boolean fileDelete(String imagePath) {
if (imagePath == null) {
return false;
}
try {
//强制删除方法
FileUtils.forceDelete(new File(imagePath));
} catch (IOException e) {
e.printStackTrace();
return false;
}
return true;
} // public static void main(String[] args) {
// imageUtil.fileDelete("C:\\Users\\en\\Desktop\\WORK\\Image\\activity\\b - 副本.jpg");
// }
}

ImageUtil的更多相关文章

  1. ImageUtil(验证码数据生成工具类)

    登录界面时,常常会使用到验证码图片生成,程序如下: package util; import java.awt.Color; import java.awt.Font; import java.awt ...

  2. 二、工具类ImageUtil——图片处理

    这个工具类完成的工作如下: 1.第一个static方法,完成图片格式的转换.统一转换成.jpg格式. package util; import java.awt.Toolkit; import jav ...

  3. Android ViewPager打造3D画廊

    本文已授权微信公众号:鸿洋(hongyangAndroid)在微信公众号平台原创首发. 网上有很多关于使用Gallery来打造3D画廊的博客,但是在关于Gallery的官方说法中表明: This cl ...

  4. Java 条形码 二维码 的生成与解析

    Barcode简介 Barcode是由一组按一定编码规则排列的条,空符号,用以表示一定的字符,数字及符号组成的,一种机器可读的数据表示方式. Barcode的形式多种多样,按照它们的外观分类: Lin ...

  5. 一站式解决,Android 拍照 图库的各种问题.

    在android开发中, 在一些编辑个人信息的时候,经常会有头像这么一个东西,就两个方面,调用系统相机拍照,调用系统图库获取图片.但是往往会遇到各种问题: 1.oom 2.图片方向不对 3.activ ...

  6. 获取img的真实宽高

    之前项目后台上传图片时需要对图片的宽高做限制,一开始百度了之后使用js进行判断,可是这种方式存在一定问题,后来就改在后台判断了.现在吧这两种方式都贴出来. 一.用js获取: 先说第一个方法:obj.s ...

  7. 分享我的开源项目-springmore

    之前有在博客园分享过springmore,不知道是什么原因,被管理员移除首页 在此郑重声明,这是我个人的开源项目,东西不多,也不存在打广告,也没有什么利益可图 完全是出于分享的目的,望博客园管理员予以 ...

  8. 【完整靠谱版】结合公司项目,仔细总结自己使用百度编辑器实现FTP上传的完整过程

    说在前面 工作中会遇到很多需要使用富文本编辑器的地方,比如我现在发布这篇文章离不开这个神器,而且现在网上编辑器太多了.记得之前,由于工作需要自己封装过一个编辑器的公共插件,是用ckeditor改版的, ...

  9. (转)百度编辑器java使用

    说在前面 工作中会遇到很多需要使用富文本编辑器的地方,比如我现在发布这篇文章离不开这个神器,而且现在网上编辑器太多了.记得之前,由于工作需要自己封装过一个编辑器的公共插件,是用ckeditor改版的, ...

随机推荐

  1. CentOS 中安装和卸载 Emacs

    日志更新记录: [1] 增加 CentOS7.2 (内核版本:3.10.0-514.16.1.el7.x86_64)下Emacs25.2 的安装过程,它与本文的步骤完全一样. Emacs 版本:htt ...

  2. Oracle数据库字段数据拆分成多行(REGEXP_SUBSTR函数)

    做多选功能时为了简便,会在某个字段中存储多个值,保存时虽然省事,但后续的查询统计时还需要拆分数据才行,因此这时需要将字段内的值分成多行以便后续使用. 下面这个例子实现了字段内数据的拆分: --创建测试 ...

  3. python中filter、map、reduce的区别

    python中有一些非常有趣的函数,今天也来总结一下,不过该类的网上资料也相当多,也没多少干货,只是习惯性将一些容易遗忘的功能进行整理. lambda 为关键字.filter,map,reduce为内 ...

  4. SQL-52 获取Employees中的first_name,查询按照first_name最后两个字母,按照升序进行排列

    题目描述 获取Employees中的first_name,查询按照first_name最后两个字母,按照升序进行排列CREATE TABLE `employees` (`emp_no` int(11) ...

  5. MySQL【数值处理函数】的使用方法

    数值处理函数 下边列举一些数学上常用到的函数,在我们的业务中有数学计算时会很有用的: 名称 调用示例 示例结果 描述 ABS ABS(-1) 1 取绝对值 PI PI() 3.131593 返回圆周率 ...

  6. C# 鼠标点击移动窗体代码,可以实现无边框窗体的拖动

    private static bool IsDrag = false; private int enterX; private int enterY; private void setForm_Mou ...

  7. 机器学习sklearn

    sklearn相关模块导入 from sklearn.feature_extraction import DictVectorizer from sklearn.feature_extraction. ...

  8. if else 和if elif else的区别

    def fuck(a): if a ==1: print(a) if a ==2: print("not good") else: print("tamade" ...

  9. python文件(概念、基本操作、常用操作、文本文件的编码方式)

    文件 目标 文件的概念 文件的基本操作 文件/文件夹的常用操作 文本文件的编码方式 01. 文件的概念 1.1 文件的概念和作用 计算机的 文件,就是存储在某种 长期储存设备 上的一段 数据 长期存储 ...

  10. 自己练习的一个小的demo的时候a标签关于href链接的问题

    一.Js的几种调用方法(参考总结的) 1.a href="javascript:js_method();" 这是常用的方法,但是这种方法在传递this等参数的时候很容易出问题,而且 ...