You are viewing a plain text version of this content. The canonical link for it is here.
Posted to user@commons.apache.org by CHUCK SYPERSKI <cs...@dupage88.net> on 2010/06/11 14:19:34 UTC

[net] Zip File corruption

I am sorry if this is a stupid questions, but I am having issues with
commons-net corrupting downloaded .zip files.  Here is my setup:

Client:
Ubuntu 10.04 64bit

java -version
java version "1.6.0_20"
Java(TM) SE Runtime Environment (build 1.6.0_20-b02)
Java HotSpot(TM) 64-Bit Server VM (build 16.3-b01, mixed mode)

I am using commons-net-2.0

All I am trying to do is connect to a ftp server and download a .zip
file.  I have tried from two different ftp servers including a netware
6.5 and an Ubuntu 8.04 LTS server and they both corrupt the file.

The application runs and all looks well until I do a md5sum on the
file.  

I get:

3c8d305a4e30592f0ac89fd1f2ce7556  Known Good file 
50855164b0b0224521e930d8324742d3  Downloaded File

2591697  Known Good file 
2591639  Downloaded File

On our netware server I tried setting:

FTPClientConfig conf = new
FTPClientConfig(FTPClientConfig.SYST_NETWARE);
ftp.configure(conf);

But it didn't seem to make a difference.

Any help would be greatly appreciated.



here is my code

==========

import java.io.FileOutputStream;
import java.io.IOException;
import java.util.logging.Level;
import java.util.logging.Logger;
import org.apache.commons.net.ftp.FTPClient;
import org.apache.commons.net.ftp.FTPFile;
import org.apache.commons.net.ftp.FTPReply;

public class Main 
{
    public static void main(String[] args) 
    {
            boolean error = false;
            FTPClient ftp = null;
            try
            {
                int reply;
                ftp=new FTPClient();
                ftp.connect("database.dupage88.net");
                ftp.login("csyperski", "password");
                
                System.out.print(ftp.getReplyString());
                reply = ftp.getReplyCode();

                if(!FTPReply.isPositiveCompletion(reply)) {
                ftp.disconnect();
                System.err.println("FTP server refused connection.");
                System.exit(1);
                }
                ftp.setFileTransferMode(FTPClient.BINARY_FILE_TYPE);
                System.out.println( ftp.printWorkingDirectory() );
                ftp.retrieveFile("VMS.zip",new
FileOutputStream( "/tmp/vms.zip"));
                ftp.logout();
            }
            catch(IOException e)
            {
                error = true;
                e.printStackTrace();
            }
            finally
            {
                if(ftp.isConnected())
                {
                    try
                    {
                        ftp.disconnect();
                    }
                    catch(IOException ioe)
                    {
                    }
                }
                System.exit(error ? 1 : 0);
            }

    }

}


==========


---------------------------------------------------------------------
To unsubscribe, e-mail: user-unsubscribe@commons.apache.org
For additional commands, e-mail: user-help@commons.apache.org


Re: [net] Zip File corruption

Posted by Christian Oloff <ch...@centenode.com>.
Probably you should close the output stream used in your call to
retrieveFile()?

Chris

On Fri, Jun 11, 2010 at 2:19 PM, CHUCK SYPERSKI <cs...@dupage88.net>wrote:

> I am sorry if this is a stupid questions, but I am having issues with
> commons-net corrupting downloaded .zip files.  Here is my setup:
>
> Client:
> Ubuntu 10.04 64bit
>
> java -version
> java version "1.6.0_20"
> Java(TM) SE Runtime Environment (build 1.6.0_20-b02)
> Java HotSpot(TM) 64-Bit Server VM (build 16.3-b01, mixed mode)
>
> I am using commons-net-2.0
>
> All I am trying to do is connect to a ftp server and download a .zip
> file.  I have tried from two different ftp servers including a netware
> 6.5 and an Ubuntu 8.04 LTS server and they both corrupt the file.
>
> The application runs and all looks well until I do a md5sum on the
> file.
>
> I get:
>
> 3c8d305a4e30592f0ac89fd1f2ce7556  Known Good file
> 50855164b0b0224521e930d8324742d3  Downloaded File
>
> 2591697  Known Good file
> 2591639  Downloaded File
>
> On our netware server I tried setting:
>
> FTPClientConfig conf = new
> FTPClientConfig(FTPClientConfig.SYST_NETWARE);
> ftp.configure(conf);
>
> But it didn't seem to make a difference.
>
> Any help would be greatly appreciated.
>
>
>
> here is my code
>
> ==========
>
> import java.io.FileOutputStream;
> import java.io.IOException;
> import java.util.logging.Level;
> import java.util.logging.Logger;
> import org.apache.commons.net.ftp.FTPClient;
> import org.apache.commons.net.ftp.FTPFile;
> import org.apache.commons.net.ftp.FTPReply;
>
> public class Main
> {
>    public static void main(String[] args)
>    {
>            boolean error = false;
>            FTPClient ftp = null;
>            try
>            {
>                int reply;
>                ftp=new FTPClient();
>                ftp.connect("database.dupage88.net");
>                ftp.login("csyperski", "password");
>
>                System.out.print(ftp.getReplyString());
>                reply = ftp.getReplyCode();
>
>                if(!FTPReply.isPositiveCompletion(reply)) {
>                ftp.disconnect();
>                System.err.println("FTP server refused connection.");
>                System.exit(1);
>                }
>                ftp.setFileTransferMode(FTPClient.BINARY_FILE_TYPE);
>                System.out.println( ftp.printWorkingDirectory() );
>                ftp.retrieveFile("VMS.zip",new
> FileOutputStream( "/tmp/vms.zip"));
>                ftp.logout();
>            }
>            catch(IOException e)
>            {
>                error = true;
>                e.printStackTrace();
>            }
>            finally
>            {
>                if(ftp.isConnected())
>                {
>                    try
>                    {
>                        ftp.disconnect();
>                    }
>                    catch(IOException ioe)
>                    {
>                    }
>                }
>                System.exit(error ? 1 : 0);
>            }
>
>    }
>
> }
>
>
> ==========
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: user-unsubscribe@commons.apache.org
> For additional commands, e-mail: user-help@commons.apache.org
>
>


-- 
Christian Oloff

christian.oloff@googlemail.com (email)
+27 73 559 1108 (mobile)
christian.oloff (skype)