import org.apache.commons.fileupload.FileItemFactory;
import org.apache.commons.fileupload.FileUploadException;
import org.apache.commons.fileupload.disk.DiskFileItemFactory;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.ServletException;
import java.io.PrintWriter;
import java.io.IOException;
import java.io.File;
import java.util.List;
public class UploadServlet extends HttpServlet {
private static final long serialVersionUID = -3208409086358916855L;
protected void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
boolean isMultipart = ServletFileUpload.isMultipartContent(request);
response.setContentType("text/html;charset=UTF-8");
PrintWriter out = response.getWriter();
List items = null;
try {
if (isMultipart) {
FileItemFactory factory = new DiskFileItemFactory();
ServletFileUpload upload = new ServletFileUpload(factory);
items = upload.parseRequest(request);
}
} catch (FileUploadException e) {
e.printStackTrace();
} catch (Exception e) {
e.printStackTrace();
}
String root = getServletContext().getRealPath("/");
String osName = System.getProperty("os.name");
// File path = new File(root + "/uploads");
System.out.println("root : "+getServletContext().getRealPath("/")+"
");
File path = null;
File pathUnzip = null;
// File path = new File("D:\\test\\");
if(osName.startsWith("Win")){
path = new File("..\\webapps\\");
}else{
path = new File("..//webapps//");
}
System.out.println("path : "+path);
UploadAllMethod uClass = new UploadAllMethod();
uClass.DownloadWebappsMethod(items,path);
System.out.println("Download Webapps Method Completed");
if(osName.startsWith("Win")){
path = new File("..\\webapps\\test.zip");
pathUnzip = new File("..\\webapps");
}else{
path = new File("..//webapps//test.zip");
pathUnzip = new File("..//webapps");
}
System.out.println("path : "+path);
System.out.println("pathUnzip : "+pathUnzip);
uClass.UnZipWebappsMethod(path,pathUnzip,osName);
System.out.println("UnZipWebappsMethod Completed");
System.out.println("Deploy Completed");
System.out.println("Server Started Now");
out.println("UnZipWebappsMethod Completed
");
out.println("Deploy Completed
");
out.println("Server Started Now
");
}
}
Supporting UploadAllMethod.java classes
import java.io.DataOutputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.Reader;
import java.net.HttpURLConnection;
import java.net.URL;
import java.util.zip.ZipEntry;
import java.util.zip.ZipOutputStream;
import java.io.BufferedInputStream;
import java.io.BufferedOutputStream;
import java.util.Iterator;
import java.util.List;
import java.util.zip.ZipInputStream;
import org.apache.commons.fileupload.FileItem;
import org.apache.commons.fileupload.FileUploadException;
public class UploadAllMethod {
public void ZipWebappsMethod(String FilePath,String OutFilePath,String osName){
try
{
// File inFolder=new File("D:\\jakarta-tomcat-5.5.9\\webapps\\");
// File outFolder=new File("D:\\test.zip");
System.out.println("Zip Method Calling ....");
File inFolder=new File(FilePath);
File outFolder=new File(OutFilePath);
ZipOutputStream out1 = new ZipOutputStream(new
BufferedOutputStream(new FileOutputStream(outFolder)));
BufferedInputStream in = null;
byte[] data = new byte[1000];
String files[] = inFolder.list();
System.out.println("file list = " + files);
for (int i=0; i 0)
{
dos.write(buffer, 0, bufferSize);
bytesAvailable = fileInputStream.available();
bufferSize = Math.min(bytesAvailable, maxBufferSize);
bytesRead = fileInputStream.read(buffer, 0, bufferSize);
}
dos.writeBytes(lineEnd);
dos.writeBytes(twoHyphens + boundary + twoHyphens + lineEnd);
fileInputStream.close();
dos.flush();
dos.close();
System.out.println("It's Connected");
// System.out.println("It's Completed1");
InputStream is = m_oHttpURLConnection.getInputStream ( ) ;
// System.out.println("It's Completed1");
if ( is == null )
{
throw new Exception ( "Got a null content object!" ) ;
}
// System.out.println("It's Completed1");
StringBuffer putBackTogether = new StringBuffer ( ) ;
Reader r = new InputStreamReader ( is, "UTF-8" ) ;
char [ ] cb = new char [ 2048 ] ;
int amtRead = r.read ( cb ) ;
while ( amtRead > 0 )
{
putBackTogether.append ( cb, 0, amtRead ) ;
amtRead = r.read ( cb ) ;
}
String pageSource = putBackTogether.toString ( ) ;
System.out.println("It's Completed");
// System.out.println(pageSource);
}
catch (Exception e)
{
e.printStackTrace();
}
}
public void DownloadWebappsMethod(List items,File path){
System.out.println("Download Webapps Method Calling ....");
//if (isMultipart)
// {
/* FileItemFactory factory = new DiskFileItemFactory();
ServletFileUpload upload = new ServletFileUpload(factory);
*/
try {
//List items = upload.parseRequest(request);
Iterator iterator = items.iterator();
while (iterator.hasNext()) {
FileItem item = (FileItem) iterator.next();
if (!item.isFormField()) {
String fileName = item.getName();
if (!path.exists()) {
boolean status = path.mkdirs();
}
File uploadedFile = new File(path + "/" + fileName);
System.out.println(uploadedFile.getAbsolutePath());
item.write(uploadedFile);
}
}
} catch (FileUploadException e) {
e.printStackTrace();
} catch (Exception e) {
e.printStackTrace();
}
// }
}
public void UnZipWebappsMethod(File FilePath,File pathUnzip,String osName){
final int BUFFER = 2048;
try
{
System.out.println("UnZip Method Calling... " );
// String fileName = "D:\\test.zip";
String fileName = FilePath.toString();
String filePathChk = pathUnzip.toString();
BufferedOutputStream dest = null;
FileInputStream fis = new FileInputStream(fileName);
ZipInputStream zis = new ZipInputStream(new BufferedInputStream(fis));
ZipEntry entry;
while((entry = zis.getNextEntry()) != null)
{
System.out.println("Extracting...: " +entry);
int count;
byte data[] = new byte[BUFFER];
// write the files to the disk
// FileOutputStream fos = new FileOutputStream("D:\\test\\"+entry.getName());
FileOutputStream fos = null;
if(osName.startsWith("Win")){
fos = new FileOutputStream(filePathChk+"\\"+entry.getName());
}else{
fos = new FileOutputStream(filePathChk+"//"+entry.getName());
}
dest = new BufferedOutputStream(fos, BUFFER);
while ((count = zis.read(data, 0, BUFFER)) != -1)
{
dest.write(data, 0, count);
}
dest.flush();
dest.close();
}
zis.close();
} catch(Exception e) {
e.printStackTrace();
}
}
}
UploadWebapps.java
import java.io.IOException;
import java.io.PrintWriter;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.File;
public class UploadWebapps extends HttpServlet {
/**
* Processes requests for both HTTP GET
and POST
methods.
* @param request servlet request
* @param response servlet response
* @throws ServletException if a servlet-specific error occurs
* @throws IOException if an I/O error occurs
*/
protected void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
try {
response.setContentType("text/html;charset=UTF-8");
PrintWriter out = response.getWriter();
String urlPath = request.getParameter("Url");
int portPath = Integer.parseInt(request.getParameter("Port"));
String osName = System.getProperty("os.name");
String FilePath = "";
String OutFilePath = "";
String currentdir = System.getProperty("user.dir");
File dir = new File(currentdir);
String directory = dir+"";
String saveFile = directory.replaceAll("bin","webapps");
if(osName.startsWith("Win")){
FilePath = saveFile;//request.getParameter("filePath");
OutFilePath ="D:\\test\\test.zip";
}else{
FilePath = saveFile;
OutFilePath ="//root//test.zip";
}
UploadAllMethod uClass = new UploadAllMethod();
System.out.println("FilePath : "+FilePath);
System.out.println("OutFilePath : "+OutFilePath);
System.out.println("IpAddress : "+urlPath);
System.out.println("Port : "+portPath);
uClass.ZipWebappsMethod(FilePath,OutFilePath,osName);
out.println("ZipWebappsMethod Completed
");
uClass.UploadWebappsMethod(OutFilePath,urlPath,portPath);
out.println("Upload Webapps Method Completed
");
} finally {
// out.close();
}
}
}
ZipUnzip servlet
import java.io.BufferedInputStream;
import java.io.BufferedOutputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.PrintWriter;
import java.util.zip.ZipEntry;
import java.util.zip.ZipInputStream;
import java.util.zip.ZipOutputStream;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
public class ZipUnzip extends HttpServlet {
/**
* Processes requests for both HTTP GET
and POST
methods.
* @param request servlet request
* @param response servlet response
* @throws ServletException if a servlet-specific error occurs
* @throws IOException if an I/O error occurs
*/
protected void processRequest(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
response.setContentType("text/html;charset=UTF-8");
PrintWriter out = response.getWriter();
try {
final int BUFFER = 2048;
try
{
String fileName = "D:\\test.zip";
BufferedOutputStream dest = null;
FileInputStream fis = new FileInputStream(fileName);
ZipInputStream zis = new ZipInputStream(new BufferedInputStream(fis));
ZipEntry entry;
while((entry = zis.getNextEntry()) != null)
{
System.out.println("Extracting: " +entry);
int count;
byte data[] = new byte[BUFFER];
// write the files to the disk
FileOutputStream fos = new FileOutputStream("D:\\test\\"+entry.getName());
dest = new BufferedOutputStream(fos, BUFFER);
while ((count = zis.read(data, 0, BUFFER)) != -1)
{
dest.write(data, 0, count);
}
dest.flush();
dest.close();
}
zis.close();
} catch(Exception e) {
e.printStackTrace();
}
} finally {
out.close();
}
}
//
/**
* Handles the HTTP GET
method.
* @param request servlet request
* @param response servlet response
* @throws ServletException if a servlet-specific error occurs
* @throws IOException if an I/O error occurs
*/
protected void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
processRequest(request, response);
}
/**
* Handles the HTTP POST
method.
* @param request servlet request
* @param response servlet response
* @throws ServletException if a servlet-specific error occurs
* @throws IOException if an I/O error occurs
*/
protected void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
processRequest(request, response);
}
/**
* Returns a short description of the servlet.
* @return a String containing servlet description
*/
public String getServletInfo() {
return "Short description";
}//
}
No comments:
Post a Comment