package cn.autoform.web.controller.resumable.util; import java.io.File; import java.util.HashSet; import java.util.logging.ConsoleHandler; import java.util.logging.Level; import java.util.logging.Logger; /** * by fanxu */ public class ResumableInfo { public int resumableChunkSize; public long resumableTotalSize; public String resumableIdentifier; public String resumableFilename; public String resumableRelativePath; public static class ResumableChunkNumber { public ResumableChunkNumber(int number) { this.number = number; } public int number; @Override public boolean equals(Object obj) { return obj instanceof ResumableChunkNumber ? ((ResumableChunkNumber)obj).number == this.number : false; } @Override public int hashCode() { return number; } } //Chunks uploaded public HashSet uploadedChunks = new HashSet(); public String resumableFilePath; public boolean vaild(){ if (resumableChunkSize < 0 || resumableTotalSize < 0 || HttpUtils.isEmpty(resumableIdentifier) || HttpUtils.isEmpty(resumableFilename) || HttpUtils.isEmpty(resumableRelativePath)) { return false; } else { return true; } } public String checkIfUploadFinished() { //check if upload finished int count = (int) Math.ceil(((double) resumableTotalSize) / ((double) resumableChunkSize)); for(int i = 1; i < count; i ++) { if (!uploadedChunks.contains(new ResumableChunkNumber(i))) { return ""; } } //Upload finished, change filename. //File file = new File(resumableFilePath); //String new_path = file.getAbsolutePath().substring(0, file.getAbsolutePath().length() - ".temp".length()); //File newFile = new File(new_path); //file.renameTo(newFile); return "uploaded"; } }