/**
* 上传文件类
*/
import java.io.BufferedInputStream;
import java.io.BufferedOutputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.FileWriter;
import java.io.FilenameFilter;
import java.io.PrintWriter;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date; import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory; public class UploadHelper { public final static String separator = "/";
public final static String split = "_"; protected final Log log = LogFactory.getLog(getClass()); class FilenameFilterImpl implements FilenameFilter
{
private String filter = "."; public FilenameFilterImpl(String aFilter)
{
filter = aFilter;
} public boolean accept(File dir, String name)
{
return name.startsWith(filter);
}
};
/**
* 获得当前的文件路径(通过当前日期生成)
* @param basePath
* @return
*/
public static String getNowFilePath(String basePath){
SimpleDateFormat formater =new SimpleDateFormat("yyyy-MM-dd");
String pathName = formater.format(new Date());
File dir = new File(basePath + separator + pathName);
if(!dir.exists())
dir.mkdir();
return pathName;
} public static String getNewFileName(String oldFileName){
oldFileName = oldFileName.replaceAll("'", "").replaceAll("\"", "");
Calendar date = Calendar.getInstance();
int hour = date.get(Calendar.HOUR_OF_DAY);
int minute = date.get(Calendar.MINUTE);
int second = date.get(Calendar.SECOND);
if(oldFileName.length()>30)
oldFileName = oldFileName.substring(oldFileName.length()-30);
return (new Integer(hour*3600 + minute*60 + second).toString())
+ split + oldFileName;
} public static String getThumbFileName(String fileName){
int pos = fileName.lastIndexOf(".");
if(pos>=0)
return fileName.substring(0, pos) + "s" + fileName.substring(pos);
else
return fileName + "s";
} /**
* This method checks if the given file exists on disk. If it does it's ignored because
* that means that the file is allready cached on the server. If not we dump
* the text on it.
*/
public void dumpAttributeToFile(String attributeValue, String fileName, String filePath) throws Exception
{
File outputFile = new File(filePath + separator + fileName);
PrintWriter pw = new PrintWriter(new FileWriter(outputFile));
pw.println(attributeValue);
pw.close();
} /**
* 保存文件
* This method checks if the given file exists on disk. If it does it's ignored because
* that means that the file is allready cached on the server. If not we take out the stream from the
* digitalAsset-object and dumps it.
*/
public void dumpAsset(File file, String fileName, String filePath) throws Exception
{
long timer = System.currentTimeMillis(); File outputFile = new File(filePath + separator + fileName);
if(outputFile.exists())
{
log.info("The file allready exists so we don't need to dump it again..");
return;
} FileOutputStream fis = new FileOutputStream(outputFile);
BufferedOutputStream bos = new BufferedOutputStream(fis); BufferedInputStream bis = new BufferedInputStream(new FileInputStream(file)); int character;
while ((character = bis.read()) != -1)
{
bos.write(character);
}
bos.flush(); bis.close();
fis.close();
bos.close();
log.info("Time for dumping file " + fileName + ":" + (System.currentTimeMillis() - timer));
} /**
* 保存缩略图
* This method checks if the given file exists on disk. If it does it's ignored because
* that means that the file is allready cached on the server. If not we take out the stream from the
* digitalAsset-object and dumps a thumbnail to it.
*/ public void dumpAssetThumbnail(File file, String fileName, String thumbnailFile, String filePath, int width, int height, int quality) throws Exception
{
long timer = System.currentTimeMillis();
log.info("fileName:" + fileName);
log.info("thumbnailFile:" + thumbnailFile); File outputFile = new File(filePath + separator + thumbnailFile);
if(outputFile.exists())
{
log.info("The file allready exists so we don't need to dump it again..");
return;
} ThumbnailGenerator tg = new ThumbnailGenerator();
tg.transform(filePath + separator + fileName, filePath + separator + thumbnailFile, width, height, quality); log.info("Time for dumping file " + fileName + ":" + (System.currentTimeMillis() - timer));
} /**
* This method removes all images in the digitalAsset directory which belongs to a certain digital asset.
*/
public void deleteDigitalAssets(String filePath, String filePrefix) throws Exception
{
try
{
File assetDirectory = new File(filePath);
File[] files = assetDirectory.listFiles(new FilenameFilterImpl(filePrefix));
for(int i=0; i<files.length; i++)
{
File file = files[i];
log.info("Deleting file " + file.getPath());
file.delete();
}
}
catch(Exception e)
{
log.error("Could not delete the assets for the digitalAsset " + filePrefix + ":" + e.getMessage(), e);
}
} }

Java-UploadHelper工具类的更多相关文章

  1. Java Properties工具类详解

    1.Java Properties工具类位于java.util.Properties,该工具类的使用极其简单方便.首先该类是继承自 Hashtable<Object,Object> 这就奠 ...

  2. Java json工具类,jackson工具类,ObjectMapper工具类

    Java json工具类,jackson工具类,ObjectMapper工具类 >>>>>>>>>>>>>>> ...

  3. Java日期工具类,Java时间工具类,Java时间格式化

    Java日期工具类,Java时间工具类,Java时间格式化 >>>>>>>>>>>>>>>>>&g ...

  4. Java并发工具类 - CountDownLatch

    Java并发工具类 - CountDownLatch 1.简介 CountDownLatch是Java1.5之后引入的Java并发工具类,放在java.util.concurrent包下面 http: ...

  5. MinerUtil.java 爬虫工具类

    MinerUtil.java 爬虫工具类 package com.iteye.injavawetrust.miner; import java.io.File; import java.io.File ...

  6. MinerDB.java 数据库工具类

    MinerDB.java 数据库工具类 package com.iteye.injavawetrust.miner; import java.sql.Connection; import java.s ...

  7. 小记Java时间工具类

    小记Java时间工具类 废话不多说,这里主要记录以下几个工具 两个时间只差(Data) 获取时间的格式 格式化时间 返回String 两个时间只差(String) 获取两个时间之间的日期.月份.年份 ...

  8. Java Cookie工具类,Java CookieUtils 工具类,Java如何增加Cookie

    Java Cookie工具类,Java CookieUtils 工具类,Java如何增加Cookie >>>>>>>>>>>>& ...

  9. UrlUtils工具类,Java URL工具类,Java URL链接工具类

    UrlUtils工具类,Java URL工具类,Java URL链接工具类 >>>>>>>>>>>>>>>&g ...

  10. java日期工具类DateUtil-续一

    上篇文章中,我为大家分享了下DateUtil第一版源码,但就如同文章中所说,我发现了还存在不完善的地方,所以我又做了优化和扩展. 更新日志: 1.修正当字符串日期风格为MM-dd或yyyy-MM时,若 ...

随机推荐

  1. Django模块

    django.contrib.humanize 一系列Django的模板过滤器,有助于向数据添加“人文关怀”. 把'django.contrib.humanize'添加到INSTALLED_APPS设 ...

  2. 【转帖】Linux图形用户界面:KDE与GNOME的由来

    Linux图形用户界面:KDE与GNOME的由来 置顶 2018年08月11日 15:51:25 hwpipixia 阅读数 4778 https://blog.csdn.net/u013895853 ...

  3. 使用Spring-boot-admin对Spring boot的服务进行监控

    要进行监控,需要两个Project,一个是Admin Server端,负责监控Spring boot的项目,另一个是Admin Client端,是被监控的Spring boot服务. Admin Se ...

  4. C#与C++的区别

    C# 参考链接:https://www.runoob.com/csharp/csharp-tutorial.html ------------------C#数据类型----------------- ...

  5. django 聚合统计查询

    from django.shortcuts import renderfrom django.http import HttpResponsefrom django.db.models import ...

  6. pb SendMessage

    PB发送和接收消息send SendMessage 1.用PB自带的SEND函数发送消息 传字符:Send(Handle(w_main),1600,0,'dfdfd') 传LONG:Send(Hand ...

  7. 计算广告CTR预估系列(七)--Facebook经典模型LR+GBDT理论与实践

    计算广告CTR预估系列(七)--Facebook经典模型LR+GBDT理论与实践 2018年06月13日 16:38:11 轻春 阅读数 6004更多 分类专栏: 机器学习 机器学习荐货情报局   版 ...

  8. JS实现带省略号的长分页显示

    // 刷新|生成分页信息 function refreshPageInfo(data, pageIndex) { var pageSize = data.pageCount pagingInfo.ht ...

  9. springMvc改造springboot2.0踩坑

    1. 支持jsp applicaiton.proerties添加配置 #指定视图解析路径前缀 spring.mvc.view.prefix=/WEB-INF/jsp/ #指定视图解析后缀 spring ...

  10. 解决windows系统下ping,ipconfig不是内部或外部命令

    一般情况下,都是误删了系统变量path的值.解决方法:右击我的电脑 → 选择属性 → 选择高级系统设置 → 环境变量 → 在系统变量列表中,找到“path”环境变量双击,打开.在变量值这一栏检测下是否 ...