Java tutorial
/* * To change this license header, choose License Headers in Project Properties. * To change this template file, choose Tools | Templates * and open the template in the editor. */ package Logic; import controller.Upload; import java.io.File; import java.text.SimpleDateFormat; import java.util.Date; import java.util.Iterator; import java.util.List; import java.util.logging.Level; import java.util.logging.Logger; import javax.servlet.http.HttpServletRequest; import model.PictureDataBeans; import model.PictureDataDAO; import model.PictureDataDTO; import model.UserDataBeans; import org.apache.commons.fileupload.FileItem; import org.apache.commons.fileupload.FileUploadException; import org.apache.commons.fileupload.disk.DiskFileItemFactory; import org.apache.commons.fileupload.servlet.ServletFileUpload; /** * * @author gest */ public class UploadLogic { // public UploadLogic() { } //? public static UploadLogic getInstance() { return new UploadLogic(); } // public void pictureUpload(HttpServletRequest request, UserDataBeans loginAccount, String contextPath) { for (int i = 0; i < 6; i++) { } PictureDataBeans picture = null; //? System.out.println("" + request.getRequestURI()); String path = "/Users/gest/NetBeansProjects/WorkSpacesProto/web/common/image/"; File newDirectry = new File(path + loginAccount.getUserName()); //????? if (!newDirectry.exists() || newDirectry == null) { newDirectry.mkdir(); System.out.println("?"); } //?? String dPath = newDirectry.getPath(); //??? DiskFileItemFactory factory = new DiskFileItemFactory(); ServletFileUpload sfu = new ServletFileUpload(factory); try { //???????? List<FileItem> list = sfu.parseRequest(request); Iterator iterator = list.iterator(); String pictureName = ""; String extension = ""; String comment = "????"; int categoryID = 1; FileItem pictureData = null; while (iterator.hasNext()) { FileItem item = (FileItem) iterator.next(); //?? if (!item.isFormField()) { pictureData = item; String itemName = item.getName(); extension = itemName.substring(itemName.lastIndexOf(".")); //()?? } else { System.out.println(item.getString("UTF-8")); switch (item.getFieldName()) { case "pictureName": //????? pictureName = item.getString("UTF-8"); //?????, [+]?? if (pictureName.isEmpty()) { Date date = new Date(); SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMddHHmmss"); String strDate = sdf.format(date); pictureName = "" + strDate; } break; case "category": categoryID = Integer.parseInt(item.getString("UTF-8")); break; case "comment": comment = item.getString("UTF-8"); break; } } } pictureData.write(new File(dPath + "/" + pictureName + extension)); //??, DB?? String pPath = contextPath + "/common/image/" + loginAccount.getUserName() + "/" + pictureName + extension; picture = new PictureDataBeans((pictureName + extension), pPath, comment, categoryID, loginAccount.getUserName()); picture.setPictureID(picture.hashCode()); //DB?? PictureDataDTO dto = new PictureDataDTO(); picture.PDB2DTOMapping(dto, loginAccount.getUserID()); PictureDataDAO.getInstance().setPictureData(dto); } catch (FileUploadException ex) { Logger.getLogger(Upload.class.getName()).log(Level.SEVERE, null, ex); } catch (Exception ex) { Logger.getLogger(Upload.class.getName()).log(Level.SEVERE, null, ex); } } }