• Post Reply Bookmark Topic Watch Topic
  • New Topic
programming forums Java Mobile Certification Databases Caching Books Engineering Micro Controllers OS Languages Paradigms IDEs Build Tools Frameworks Application Servers Open Source This Site Careers Other Pie Elite all forums
this forum made possible by our volunteer staff, including ...
Marshals:
  • Campbell Ritchie
  • Jeanne Boyarsky
  • Ron McLeod
  • Paul Clapham
  • Liutauras Vilda
Sheriffs:
  • paul wheaton
  • Rob Spoor
  • Devaka Cooray
Saloon Keepers:
  • Stephan van Hulst
  • Tim Holloway
  • Carey Brown
  • Frits Walraven
  • Tim Moores
Bartenders:
  • Mikalai Zaikin

zipping problem in applet very urgent

 
Ranch Hand
Posts: 84
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
hi friends
i am using this applet for zipping A:// files and it will get zipped in and uploaded to my server.my files are getting uploadd but when i want to unzip those files with winzip it on server is saying it is not a valid archive.can some body pls correct my code and tell me what is wromg in my code?
//Title: Global Web
//Version:
//Copyright: Copyright (c) 1999
//Author: Nitin Phadnis
//Company: Waterford Institute
//Description: Your description
package org.waterford.globalweb.presentation;
import java.awt.*;
import java.awt.event.*;
import java.applet.*;
import java.util.*;
import javax.swing.*;
import java.io.*;
import java.net.*;
import java.util.zip.*;
public class GetData extends Applet implements ActionListener
{
boolean isStandalone = false;
private Panel labelPanel=new Panel();
private Panel choicePanel=new Panel();
private Panel drivePanel=new Panel();
private Panel butPanel=new Panel();
private Label label=new Label("Insert WCART Disk for Data Upload.");
private Label diskLabel=new Label("Select Disk :");
private Button upload=new Button("Upload Data");
private Choice drive=new Choice();
private TextArea status=new TextArea(10,7);
public static final int BUFFER_SIZE=1024512;
//Get a parameter value
public String getParameter(String key, String def) {
return isStandalone ? System.getProperty(key, def) :
(getParameter(key) != null ? getParameter(key) : def);
}
//Construct the applet
public GetData() {
}
//Initialize the applet
public void init() {
System.out.println("init");
System.out.println("os.name="+System.getProperty("os.name","not known"));
System.out.println("os.arch="+System.getProperty("os.arch","not known"));
System.out.println("os.version="+System.getProperty("os.version","not known"));
System.out.println("java.class.version="+System.getProperty("java.class.version","not known"));
System.out.println("java.vendor="+System.getProperty("java.vendor","not known"));
System.out.println("java.vendor.url="+System.getProperty("java.vendor.url","not known"));
System.out.println("java.version="+System.getProperty("java.version","not known"));
try
{
System.out.println("java.class.path="+System.getProperty("java.class.path","not known"));
System.out.println("java.home="+System.getProperty("java.home","not known"));
System.out.println("file.separator="+System.getProperty("file.separator","not known"));
System.out.println("line.separator="+System.getProperty("line.separator","not known"));
System.out.println("path.separator="+System.getProperty("path.separator","not known"));
}
catch(Exception e)
{
status.setText("The Browser will not allow me to access your hard disk. Install a Plugin and Try again");
return;
}
try
{
jbInit();
}
catch(Exception e)
{
e.printStackTrace();
}
}
//Component initialization
private void jbInit() throws Exception
{
this.setLayout(new BorderLayout());
this.setBackground(Color.white);
this.setSize(new Dimension(450,300));
labelPanel.setBackground(Color.white);
choicePanel.setBackground(Color.white);
choicePanel.setLayout(new BorderLayout());
butPanel.setBackground(Color.white);
drivePanel.setBackground(Color.white);
status.setBackground(Color.white);
status.append("Select the Drive and click the upload button.");
status.setForeground(Color.black);
status.setEditable(false);
label.setFont(new Font("TimesNewRoman",Font.BOLD,15));
drive.add("A://");
drive.add("B://");
drive.addItemListener(new ItemListener ()
{
public void itemStateChanged(ItemEvent ie)
{
upload.setEnabled(true);
}
});
upload.addActionListener(this);
labelPanel.add(label);
drivePanel.add(diskLabel);
drivePanel.add(drive);
choicePanel.add(drivePanel,BorderLayout.NORTH);
choicePanel.add(status,BorderLayout.CENTER);
butPanel.add(upload);
this.add(labelPanel,BorderLayout.NORTH);
this.add(choicePanel,BorderLayout.CENTER);
this.add(butPanel,BorderLayout.SOUTH);
}
//Start the applet
public void start()
{
}
//Stop the applet
public void stop()
{
}
//Destroy the applet
public void destroy()
{
choicePanel.setVisible(false);
butPanel.setVisible(false);
labelPanel.setVisible(false);
}
//Get Applet information
public String getAppletInfo()
{
return "Applet Information";
}
//Get parameter info
public String[][] getParameterInfo()
{
return null;
}
//Main method
public static void main(String[] args) {
GetData applet = new GetData();
applet.isStandalone = true;
Frame frame;
frame = new Frame() {
protected void processWindowEvent(WindowEvent e) {
super.processWindowEvent(e);
if (e.getID() == WindowEvent.WINDOW_CLOSING) {
this.dispose();
System.exit(0);
}
}
public synchronized void setTitle(String title) {
super.setTitle(title);
enableEvents(AWTEvent.WINDOW_EVENT_MASK);
}
};
frame.setTitle("Applet Frame");
frame.add(applet, BorderLayout.CENTER);
applet.init();
applet.start();
frame.setSize(700,430);
Dimension d = Toolkit.getDefaultToolkit().getScreenSize();
frame.setLocation((d.width - frame.getSize().width) / 2, (d.height - frame.getSize().height) / 2);
frame.setVisible(true);
}
public void actionPerformed(ActionEvent e)
{
if(e.getActionCommand().equals("Upload Data"))
getFiles();
else
return;
}
/**
* this method is used for getting a files
*/
public void getFiles()
{
String selectedDrive=drive.getSelectedItem();
File dir=new File(selectedDrive);
File[] files=dir.listFiles();
if(files==null)
{
status.append("\nEmpty Disk Found OR Select a Proper Drive for data "
+"upload.");
upload.setEnabled(false);
return;
}
else
{
for(int i=0;i<files.length;i++)
{
if((files[i].getName().equalsIgnoreCase("SM") && files[i].isDirectory())
| | (files[i].getName().equalsIgnoreCase("ITEMDIFF") &&
files[i].isDirectory()) | | (files[i].getName().equalsIgnoreCase("RESULTS")
&& files[i].isDirectory()))
{
sendZipFile(files[i]);
}
else
{
status.append("\nDisk is not a WCART Disk."+
"\nPlease insert a WCART Disk.");
return;
}
}
}
}
/**
* making of zipfile
* @param File,String
*/
public void sendZipFile(File f)
{
String fileName=f.getName();
fileName="wcart"+fileName.toLowerCase()+".zip";
try
{
status.append("\nAttempting a upload of "+fileName);
File[] fileList=f.listFiles();
if(fileList==null)
{
return;
}
status.append("\nCreate URL="+getCodeBase()+"/FormUpload.po");
if(!("http".equals(getCodeBase().getProtocol())))
{
status.append("\nRequired Protocoal not found.");
return ;
}
URL servlet=new URL(getCodeBase(),"/FormUpload.po");
status.append("\n"+servlet.toString());
URLConnection conn=servlet.openConnection();
conn.setDoOutput(true);
conn.setDoInput(true);
conn.setUseCaches(false);
conn.setRequestProperty("Content-type","multipart/form-data;boundary="+
getBoundary());
DataOutputStream out = new DataOutputStream(conn.getOutputStream());
out.writeBytes("\r\n" + "--" +getBoundary() + "\r\n");
out.writeBytes("content-disposition: form-data; name=\"appletfile\";filename=\""
+ fileName + "\"\r\n");
out.writeBytes("content-type: application/x-zip-compressed" + "\r\n\r\n");
ZipOutputStream zout=new ZipOutputStream(out);
try
{
for(int i=0;i<fileList.length;i++)
{
System.out.println("Files are :"+fileList[i]);
sendFile(fileList[i],zout);
}
}
finally
{
try
{
String s;
out.writeBytes("\r\n"+"--"+getBoundary()+"\r\n") ;
System.out.println("DataOutputStream size is :"+out.size());
zout.close();
out.close();
/*
BufferedReader br=new BufferedReader
(new InputStreamReader(conn.getInputStream()));
while((s=br.readLine())!=null)
status.append("\n"+s);
*/
}
catch(Exception ex)
{
ex.printStackTrace();
}
}
}
catch (Exception ex)
{
System.out.println("Exception Occured :"+ex.getMessage());
ex.printStackTrace();
}
}
/**
* sending of zipfile
* @param File
*/
public void sendFile(File f,ZipOutputStream zout)
{
byte[] buffer=new byte[BUFFER_SIZE];
try
{
try
{
if(f.isDirectory())
{
File[] fileList=f.listFiles();
for(int i=0;i<fileList.length;i++)
{
sendFile(fileList[i],zout);
}
}
else
{
int n;
FileInputStream fin=new FileInputStream(f);
String absolutePath=f.getAbsolutePath().substring(2);
ZipEntry zipEntry=new ZipEntry(f.getAbsolutePath().substring(2));
zout.putNextEntry(zipEntry);
while((n=fin.read(buffer,0,buffer.length))!=-1)
{
zout.write(buffer,0,n);
}
zout.closeEntry();
}
}
catch(Exception ex){ex.printStackTrace();}
}
catch(Exception ex)
{
System.out.println("Exception Occured :"+ex.getMessage());
ex.printStackTrace();
}
}
/**
* method defined for boundry
*/
private String getBoundary()
{
return "----------------RishiPravinkumarDalpatramYagnikRajPravinkumar"
+"DalpatramYagnikPravinkumarDalpatramYagnik----------------------------";
}
}
it is very urgent.
Rishi
 
Saloon Keeper
Posts: 27762
196
Android Eclipse IDE Tomcat Server Redhat Java Linux
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
Make sure your servlet isn't using a text reader to pull the data in - ZIP files are binary!
reply
    Bookmark Topic Watch Topic
  • New Topic