package cn.newgxu.bbs.common.util.fileupload; import java.io.File; import java.util.ArrayList; import java.util.Date; import java.util.List; import org.apache.commons.fileupload.FileItem; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import cn.newgxu.bbs.common.util.Util; import cn.newgxu.bbs.domain.UploadItem; import cn.newgxu.bbs.domain.Uploadable; import cn.newgxu.jpamodel.ObjectNotFoundException; /** * * @author polly * @since 4.0.0 * @version $Revision 1.1$ */ public class NewgxuFileUploadUtil { private static final Log log = LogFactory .getLog(NewgxuFileUploadUtil.class); public static List<UploadItem> convertItems(List<FileItem> items) { List<UploadItem> uploadItems = new ArrayList<UploadItem>(items.size()); for (FileItem item : items) { if (!item.isFormField()) { String filename = Util.getSafeFilename(item.getName()); if (log.isDebugEnabled()) { log.debug("filename:" + filename); } Uploadable uploadable; try { uploadable = Uploadable.getByFilename(filename); UploadItem uploadItem = new UploadItem(); uploadItem.setUploadable(uploadable); uploadItem.setFilename(filename); uploadItem.setUploadTime(new Date()); uploadItem.setFileSize((int) (item.getSize() / 1024) + 1); String path = Util.getUploadFilePath(uploadable .getFilenameExtension()); File tempFile = new File(path + ".tmp"); try { item.write(tempFile); uploadItem.setStoragePath(tempFile.toString()); uploadItems.add(uploadItem); } catch (Exception e) { log.error(e); e.printStackTrace(); } } catch (ObjectNotFoundException e) { log.debug(e); } } } return uploadItems; } }