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. one list to muti list

    List<Integer> intList = Lists.newArrayList(1, 2, 3, 4, 5, 6, 7, 8); List<List<Integer> ...

  2. mysql 执行sql流程

    客户端发送sql 语句后的堆栈 #0 0x0000000100370565 in do_command(THD*) at percona-server-Percona-Server-5.6.37-82 ...

  3. 在公网上的Linux,我的一些配置分享

    前言 去年的时候,有一篇介绍在vultr上搭建ss服务器的文章,由于某些众所周知的原因,被阿里云删除. 后来有段时间使用vps,配合<鸟哥私房菜>,学习实操linux.当时我以为只要roo ...

  4. Python实现简单的四则运算

    GitHub 项目地址 https://github.com/745421831/-/tree/master PSP PSP2.1 Personal Software Process Stages 预 ...

  5. ereg

    int ereg ( string $pattern , string $string [, array &$regs ] ) Note: 使用 Perl 兼容正则表达式语法的 preg_ma ...

  6. 8ci

  7. flask 第三章 特殊装饰器 CBV Flask-Session WTForms

    1.flask中的特殊装饰器 前面我们讲过的装饰器函数中,用来登录验证,这次我们来介绍几个flask中的特殊装饰器 1). @app.before_request 具体的用途是: 在请求进入视图函数之 ...

  8. echarts折线图

    https://echarts.baidu.com/examples/#chart-type-bar

  9. linux介绍、命令(基本命令、常用命令、使用方法、基本格式)

    操作系统(科普章节) 目标 了解操作系统及作用 1. 操作系统(Operation System,OS) 一个例子说明操作系统 操作系统作为接口的示意图 没有安装操作系统的计算机,通常被称为 裸机 如 ...

  10. c#计算器

    代码没有大的问题,但是起初点击控件无反应,原因是事件代码要自己敲,不能直接粘贴. using System;using System.Collections.Generic;using System. ...