Logic.UploadLogic.java Source code

Java tutorial

Introduction

Here is the source code for Logic.UploadLogic.java

Source

/*
 * 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);
        }

    }
}