package com.jcommerce.gwt.server;
import java.awt.image.BufferedImage;
import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream;
import java.io.IOException;
import java.util.UUID;
import javax.imageio.ImageIO;
import org.apache.commons.fileupload.FileItem;
import com.jcommerce.core.io.DisposePictures;
import com.jcommerce.core.io.FileManagerFactory;
import com.jcommerce.core.io.IFile;
public class StoreOrderType {
public String StoreFile(String storeType, FileItem item, String today){
String name = null;
if("thumb".equals(storeType)){
name = storeFiles2Thumb(item, today);
}else if("img_thumb".equals(storeType)){
name = storeFiles2Img_thumb(item, today);
}else if("img".equals(storeType)){
name = storeFiles(item, today);
}else if("csv".equals(storeType)){
name = storeFiles(item, today);
}else{
System.out.println("-The storeType is not correct!(StoreOrderType)-");
}
return name;
}
private String storeFiles(FileItem item, String today) {
if (item.isFormField() == false) {
// 或直接保存成文件
// String name = item.getName();
// if (name.contains("\\")) {
// name = name.substring(name.lastIndexOf("\\") + 1);
// } else if (name.contains("/")) {
// name = name.substring(name.lastIndexOf("/") + 1);
// }
String name = "images/" + today + "/" + getFileName(item);
// + UUID.randomUUID().toString();
try {
IFile file = FileManagerFactory.getFileManager().createFile(name);
System.out.println("!!!!!!!!!!!!!!!!!!" + name);
// 直接保存文件
file.saveContent(item.get());
} catch (IOException e) {
e.printStackTrace();
}
return name;
}
return null;
}
private String storeFiles2Img_thumb(FileItem item, String today) {
if (item.isFormField() == false) {
String randomName_img = getFileName(item);
String randomName_thumb = "thumb_" + randomName_img;
String name_img = "images/"+today+"/"+ randomName_img;
String name_thumb = "images/"+today+"/thumb/"+ randomName_thumb;
byte[] content = item.get();
try {
IFile file = FileManagerFactory.getFileManager().createFile(name_img);
// 直接保存文件
file.saveContent(content);
} catch (IOException e) {
e.printStackTrace();
}
try {
BufferedImage image_thumb = ImageIO.read(new ByteArrayInputStream(content));
DisposePictures dp_thumb = new DisposePictures();
image_thumb = dp_thumb.resize(image_thumb, 100, 100);
ByteArrayOutputStream baos = new ByteArrayOutputStream();
ImageIO.write(image_thumb, name_img.substring(name_img.lastIndexOf(".")+1), baos);
IFile file = FileManagerFactory.getFileManager().createFile(name_thumb);
// 直接保存文件
file.saveContent(baos.toByteArray());
} catch (IOException e) {
e.printStackTrace();
}
return name_img;
}
return null;
}
private String storeFiles2Thumb(FileItem item, String today) {
if (item.isFormField() == false) {
String randomName = "thumb_" + getFileName(item);
String name = "images/"+today+"/thumb/"+ randomName;
try {
IFile file = FileManagerFactory.getFileManager().createFile(name);
// 直接保存文件
file.saveContent(item.get());
} catch (IOException e) {
e.printStackTrace();
}
return name;
}
return null;
}
private String getFileName(FileItem item) {
String f = item.getName();
f = f.replace('\\', '/');
String s = f.substring(f.lastIndexOf('/')+1);
if (s.indexOf(".") > 0) {
return UUID.randomUUID().toString() + s.substring(s.lastIndexOf("."));
}
return UUID.randomUUID().toString();
}
}