package com.walker.file.support;
|
|
import com.walker.file.FileEngine.StoreType;
|
import com.walker.file.FileMeta;
|
import com.walker.infrastructure.utils.FileUtils;
|
import com.walker.infrastructure.utils.NumberGenerator;
|
import com.walker.infrastructure.utils.StringUtils;
|
|
public class DefaultFileMeta implements FileMeta {
|
|
private String id;
|
private String filename;
|
private String contentType;
|
private String path;
|
StoreType storeType;
|
private byte[] content;
|
|
private long createTime = 0;
|
private String creator;
|
|
private String ext;
|
|
// 文件绝对路径,带名字,如:d:/logs/2014/8/abcd.doc
|
private String absoluteFileName;
|
|
private String group;
|
|
private long fileSize = 0;
|
|
/**
|
* 返回文件的绝对路径,带名字。
|
* @return
|
*/
|
@Override
|
public String getAbsoluteFileName() {
|
return absoluteFileName;
|
}
|
|
@Override
|
public void setAbsoluteFileName(String absoluteFileName) {
|
this.absoluteFileName = absoluteFileName;
|
}
|
|
public DefaultFileMeta(){
|
this.id = String.valueOf(NumberGenerator.getLongSequenceNumber());
|
this.createTime = System.currentTimeMillis();
|
}
|
|
@Override
|
public String getId() {
|
return id;
|
}
|
|
@Override
|
public String getFilename() {
|
return filename;
|
}
|
|
@Override
|
public String getContentType() {
|
return contentType;
|
}
|
|
@Override
|
public String getPath() {
|
return path;
|
}
|
|
@Override
|
public StoreType getStoreType() {
|
return storeType;
|
}
|
|
@Override
|
public byte[] getContent() {
|
return content;
|
}
|
|
@Override
|
public long getCreateTime() {
|
return createTime;
|
}
|
|
@Override
|
public String getCreator() {
|
return creator;
|
}
|
|
@Override
|
public void setFilename(String filename) {
|
assert (StringUtils.isNotEmpty(filename));
|
this.filename = filename;
|
}
|
|
@Override
|
public void setContentType(String type) {
|
assert (StringUtils.isNotEmpty(type));
|
this.contentType = type;
|
}
|
|
@Override
|
public void setPath(String path) {
|
assert (StringUtils.isNotEmpty(path));
|
this.path = path;
|
}
|
|
@Override
|
public void setStoreType(StoreType st) {
|
assert (st != null);
|
this.storeType = st;
|
}
|
|
@Override
|
public void setContent(byte[] content) {
|
assert (content != null);
|
this.content = content;
|
}
|
|
@Override
|
public void setCreator(String creator) {
|
assert (StringUtils.isNotEmpty(creator));
|
this.creator = creator;
|
}
|
|
public String toString(){
|
return new StringBuilder().append("id=").append(id)
|
.append(", filename=").append(filename)
|
.append(", storeType=").append(storeType)
|
.append(", createTime=").append(createTime).toString();
|
}
|
|
@Override
|
public String getFileExt() {
|
return ext;
|
}
|
|
@Override
|
public void setFileExt(String ext) {
|
// assert (StringUtils.isNotEmpty(ext));
|
this.ext = ext;
|
}
|
|
@Override
|
public void setId(String id) {
|
assert (StringUtils.isNotEmpty(id));
|
this.id = id;
|
}
|
|
@Override
|
public void setCreateTime(long time) {
|
if(time > 0)
|
this.createTime = time;
|
}
|
|
@Override
|
public String getGroup() {
|
return group;
|
}
|
|
@Override
|
public void setGroup(String groupId) {
|
if(StringUtils.isNotEmpty(groupId)){
|
this.group = groupId;
|
}
|
}
|
|
@Override
|
public long getFileSize() {
|
return this.fileSize;
|
}
|
|
@Override
|
public void setFileSize(long size) {
|
this.fileSize = size;
|
}
|
|
private boolean thumbNails = false;
|
private int thumbWidth = 70;
|
private int thumbHeight = 70;
|
private double thumbQuality = 0.6;
|
|
@Override
|
public void setThumbNails(boolean thumb) {
|
this.thumbNails = thumb;
|
}
|
|
@Override
|
public void setThumbWithHeight(int width, int height, double quality) {
|
if(width >= 480 || height >= 640){
|
return;
|
}
|
this.thumbWidth = width;
|
this.thumbHeight = height;
|
if(quality < 0 || quality > 1){
|
return;
|
}
|
this.thumbQuality = quality;
|
}
|
|
@Override
|
public boolean isThumbNails() {
|
// 只要是图片,统一都产生缩略图
|
// return thumbNails;
|
|
thumbNails = this.getIsImage();
|
return thumbNails;
|
}
|
|
@Override
|
public int[] getThumbWidthHeight() {
|
return new int[]{this.thumbWidth, this.thumbHeight};
|
}
|
|
@Override
|
public double getThumbQuality() {
|
return this.thumbQuality;
|
}
|
|
private Object fileItem;
|
|
@Override
|
public Object getFileItem() {
|
return fileItem;
|
}
|
|
@Override
|
public void setFileItem(Object fileItem) {
|
this.fileItem = fileItem;
|
}
|
|
@Override
|
public String getThumbNailsName() {
|
if(StringUtils.isNotEmpty(path)){
|
// StringBuilder thumb = new StringBuilder();
|
// thumb.append(path.subSequence(0, path.lastIndexOf(StringUtils.SYMBOL_DOT)));
|
// thumb.append("_s.").append(ext);
|
// return thumb.toString();
|
// return FileUtils.getThumbNailsName(path, ext);
|
return FileUtils.getThumbNailsName(path);
|
}
|
return null;
|
}
|
|
@Override
|
public boolean getIsImage() {
|
if(StringUtils.isNotEmpty(ext)){
|
if(ext.equalsIgnoreCase("jpg")
|
|| ext.equalsIgnoreCase("jpeg")
|
|| ext.equalsIgnoreCase("png")
|
|| ext.equalsIgnoreCase("gif")
|
|| ext.equalsIgnoreCase("bmp")){
|
return true;
|
}
|
}
|
return false;
|
}
|
|
public static void main(String[] args){
|
DefaultFileMeta fm = new DefaultFileMeta();
|
fm.setPath("2016/10/1476712981597_demo_pic.jpg");
|
fm.setFileExt("jpg");
|
System.out.println(fm.getThumbNailsName() + ", " + fm.getIsImage());
|
}
|
}
|