Package com.vst.webapp.servlet

Source Code of com.vst.webapp.servlet.FileUploadServlet

package com.vst.webapp.servlet;

import com.vst.util.FileHelper;
import com.vst.util.db2sql;
import com.vst.webapp.listener.FileUploadListener;
import org.apache.commons.fileupload.FileItem;
import org.apache.commons.fileupload.FileItemFactory;
import org.apache.commons.fileupload.FileUploadException;
import org.apache.commons.fileupload.disk.DiskFileItemFactory;
import org.apache.commons.fileupload.servlet.ServletFileUpload;

import javax.servlet.Servlet;
import javax.servlet.ServletException;
import javax.servlet.http.*;
import java.io.File;
import java.io.IOException;
import java.io.PrintWriter;
import java.util.Iterator;
import java.util.List;


public class FileUploadServlet
  extends HttpServlet
  implements Servlet
{
  private static final long serialVersionUID = 2740693677625051632L;

    private final String ATTR_NAME = "LISTENER";

    public FileUploadServlet()
  {
    super();
  }

    protected void doGet(HttpServletRequest request, HttpServletResponse response)
      throws ServletException, IOException
    {
       // System.out.println("DO GET !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!");
      PrintWriter
        out = response.getWriter();
      HttpSession
        session = request.getSession();
      FileUploadListener
        listener = null;
      StringBuffer
        buffy = new StringBuffer();
      long
        bytesRead = 0,
        contentLength = 0;

      // Make sure the session has started
      if (session == null)
      {
        return;
      }
      else if (session != null)
      {
        // Check to see if we've created the listener object yet
        listener = (FileUploadListener)session.getAttribute(ATTR_NAME);

        if (listener == null)  {
          return;
        else  {
          // Get the meta information
            bytesRead = listener.getBytesRead();
          contentLength = listener.getContentLength();
        }
      }
              
      response.setContentType("text/xml");

      buffy.append("<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n");
      buffy.append("<response>\n");
      buffy.append("\t<bytes_read>" + bytesRead + "</bytes_read>\n");
      buffy.append("\t<content_length>" + contentLength + "</content_length>\n");

      // Check to see if we're done
      if (bytesRead == contentLength)
      {
            buffy.append("\t<finished />\n");
        // No reason to keep listener in session since we're done
      session.setAttribute(ATTR_NAME, null);
      else    {
            // Calculate the percent complete
        long percentComplete = ((100 * bytesRead) / contentLength);
        buffy.append("\t<percent_complete>" + percentComplete + "</percent_complete>\n");
            System.out.println("####################################### " + percentComplete);
        }

      buffy.append("</response>\n");

      out.println(buffy.toString());
      out.flush();
      out.close();
    }
 

    protected void doPost(HttpServletRequest request, HttpServletResponse response)
      throws ServletException, IOException
    {
    //    System.out.println("DO POST !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!");
       
        FileItemFactory    factory = new DiskFileItemFactory();
    ServletFileUpload  upload = new ServletFileUpload(factory);
    FileUploadListener  listener = new FileUploadListener();
    HttpSession      session = request.getSession();

        ////
        Cookie cookie = new Cookie("dumpLoaded", ""+(new java.util.Date().getTime()));
        cookie.setValue("false");
        cookie.setMaxAge(30*24*60*60);
        response.addCookie(cookie);
        ////

       
        session.setAttribute(ATTR_NAME, listener);
    // upload seТцуrvlet allows to set upload listener
    upload.setProgressListener(listener);


    List     uploadedItems = null;
    FileItem fileItem = null;
    String   filePath = "c:\\temp"// Path to store file on local system
        File tmpf = new File(filePath);

        if(!tmpf.exists())  {
            tmpf.mkdir();
        }
        else  if(!tmpf.isDirectory())   {
                    tmpf.delete();
                    tmpf.mkdir()
                }

        //tttttttttttttttttttttttttttttttttttttt
        File dumpFile = null;
        //tttttttttttttttttttttttttttttttttttttt

        try
    {
      // iterate over all uploaded files
      uploadedItems = upload.parseRequest(request);

      Iterator i = uploadedItems.iterator();

      while (i.hasNext())
      {
        fileItem = (FileItem) i.next();

        if (fileItem.isFormField() == false)
        {
          if (fileItem.getSize() > 0)
          {
            File
              uploadedFile = null;
            String
              myFullFileName = fileItem.getName(),
              myFileName = "",
              slashType = (myFullFileName.lastIndexOf("\\") > 0) ? "\\" : "/"; // Windows or UNIX
            int
              startIndex = myFullFileName.lastIndexOf(slashType);

            // Ignore the path and get the filename
            myFileName = myFullFileName.substring(startIndex + 1, myFullFileName.length());

            // Create new File object
            uploadedFile = new File(filePath, myFileName);
                        dumpFile = new File(filePath, myFileName);
            // Write the uploaded file to the system
            fileItem.write(uploadedFile);
          }
        }
      }

             ////
             cookie = new Cookie("dumpLoaded", ""+(new java.util.Date().getTime()));
             cookie.setValue("true");
             cookie.setMaxAge(30*24*60*60);
             response.addCookie(cookie);
             ////
           
            // tttttttttttttttttttttttttttttttttttttt
            request.setAttribute("isLoaded", "true");

              if (!db2sql.execDump(FileHelper.loadFileAsString(dumpFile,"UTF-8"),null, request, response)) {
                 request.setAttribute("sqlMistake", "true");
             }

            //    db2sql.test();

            if( dumpFile != null )
                 dumpFile.delete();
            else
                 request.setAttribute("noFile", "true")
            // tttttttttttttttttttttttttttttttttttttt

          PrintWriter out = response.getWriter();
            out.println( "<html><head><title></title> " +
                         "<meta http-equiv=\"Content-Type\" content=\"text/html; charset=utf8\"/></head>");
            out.println("<body>");
            out.println("<p align=center><font color='#008800'><b>Restore base completed!</b></font></p>");
            out.println("</body>");
            out.println("</html>");
            out.flush();
            out.close();

        }
        catch (FileUploadException e)
    {
      e.printStackTrace();
    }
    catch (Exception e)
    {
      e.printStackTrace();
    }
  }      
}
TOP

Related Classes of com.vst.webapp.servlet.FileUploadServlet

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.