FileUploadUtils package com.qf.utils;/** * @author 作者 张明月 E-mail:zmy5151510@gmail.com * @version 创建时间:2017年9月22日 上午12:55:26 * 类说明 */import java.io.File;import java.text.SimpleDateFormat;import java.util.D
package com.qf.utils; /** * @author 作者 张明月 E-mail:zmy5151510@gmail.com * @version 创建时间:2017年9月22日 上午12:55:26 * 类说明 */ import java.io.File; import java.text.SimpleDateFormat; import java.util.Date; import java.util.UUID; import org.apache.commons.fileupload.FileItem; public class FileUploadUtils { /*------------------------获取上传文件的的文件名----------------------*/ public static String getFileNameByCommon(FileItem fileItem) { return fileItem.getName().substring(fileItem.getName().lastIndexOf("\\") + 1); } /*---------------------通过UUID获取上传文件的的文件名----------------------*/ public static String getFileNameByUUID(FileItem fileItem) { String filename = getFileNameByCommon(fileItem); String Singlefilename = UUID.randomUUID().toString() + "_" + filename; return Singlefilename; } /*---------------------通过时间戳获取上传文件的的文件名----------------------*/ public static String getFileNameByTimeStamp(FileItem fileItem) { String filename = getFileNameByCommon(fileItem); String Singlefilename = System.currentTimeMillis() + "_" + filename; return Singlefilename; } /*--------------------- 改进之前的默认方法获取文件夹-------------------*/ // 参数fileItem表示上传表单项 返回值为上传文件要写入的文件夹 public static File getFileByCommon(FileItem fileItem) { File file = new File("c:\\img"); if (!file.exists()) { file.mkdirs(); } String filename = getFileNameByCommon(fileItem); File file2 = new File(file, filename); return file2; } /*----------------通过uuid实现文件名字的唯一性-------------------*/ public static File getFileByUUIDToSingleName(FileItem fileItem) { File file = new File("c:\\img"); if (!file.exists()) { file.mkdirs(); } String Singlefilename = getFileNameByUUID(fileItem); File file2 = new File(file, Singlefilename); return file2; } /*----------------通过时间戳实现文件名字的唯一性-------------------*/ public static File getFileByTimestampToSingleName(FileItem fileItem) { File file = new File("c:\\img"); if (!file.exists()) { file.mkdirs(); } String filename = getFileNameByCommon(fileItem); String Singlefilename = System.currentTimeMillis() + "_" + filename; File file2 = new File(file, Singlefilename); return file2; } /*----------------------按照日期将文件打散---------------------------*/ public static File getFileByDataToBreakDirectory(FileItem fileItem) { // 获取日期值 Long time = System.currentTimeMillis(); SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd"); String data = format.format(new Date(time)); // 创建文件夹(按照时间创建) File file = new File("c:\\img", data); if (!file.exists()) { file.mkdirs(); } // 创建文件 String Singlefilename = getFileNameByTimeStamp(fileItem); File file2 = new File(file, Singlefilename); return file2; } /*----------------------按照hashcode将文件打散---------------------------*/ public static File getFileByHashCodeToBreakDirectory(FileItem fileItem) { /* 获取文件名称hashcode值 */ String Singlefilename = getFileNameByTimeStamp(fileItem); int filenameHashcode = Singlefilename.hashCode(); /* 将int型的hashcode的值转化成16进制的字符串 */ String code = Integer.toHexString(filenameHashcode); /* 16进制有很多字符 随机取就可以 */ String directory = code.charAt(0) + "\\" + code.charAt(1); // 创建2层目录 File file = new File("c:\\img", directory); if (!file.exists()) { file.mkdirs(); } File file2 = new File(file, Singlefilename); return file2; } /*----------------通过磁盘路径得到服务器的映射路径地址(网络访问路径)-------------------*/ public static String getNetPath(String diskPath) { int index1 = diskPath.indexOf("img"); String netPath = "http://localhost:8080/img01/"+diskPath.substring(index1 + 4).replace("\\", "/"); return netPath; } }