Solved

FTP a zip file with java

Posted on 2009-05-15
5
403 Views
Last Modified: 2012-05-07
I'm using this piece of code in order to upload files to an ftp server,
and it works ok with plain file (eg. a TXT file)
but when I'm trying to upload a ZIP file ,
the file that uploaded to the server is corrapted.
Any suggestons ? ?

Thanks
public class testFTP {
 
    public static final void main(String[] args) {
        String server      = null;     server       = args[0]
        String username = null;     username = args[1];
        String password = null;    password = args[2];
        String directory   = null;     directory   = args[3];
        
        try{
        FTPClient ftp=new FTPClient();
        
        ftp.connect(server);
        ftp.login(username, password);
        
        ftp.changeWorkingDirectory(directory);
        
        String dir = System.getProperty("user.dir")+"\\";
        String filename = dir+"my_file.zip";
        
        File f = new File(filename);
        FileInputStream fis = new FileInputStream(filename);
        ftp.storeFile(f.getName(), fis);
        ftp.logout();
        fis.close();
        } catch (Exception e) {
            e.printStackTrace();
        }
}
}

Open in new window

0
Comment
Question by:nikos270
[X]
Welcome to Experts Exchange

Add your voice to the tech community where 5M+ people just like you are talking about what matters.

  • Help others & share knowledge
  • Earn cash & points
  • Learn & ask questions
  • 2
  • 2
5 Comments
 
LVL 86

Expert Comment

by:CEHJ
ID: 24394057
Call binary() on the client before uploading
0
 

Author Comment

by:nikos270
ID: 24394073
you mean something like this:
ftp.setFileTransferMode(ftp.BINARY_FILE_TYPE);

0
 
LVL 12

Accepted Solution

by:
Gibu George earned 250 total points
ID: 24394094
If you are using apache commones net FTPClient
set the file type as FTP.BINARY_FILE_TYPE
ftp.setFileType(FTP.BINARY_FILE_TYPE);
0
 
LVL 12

Expert Comment

by:Gibu George
ID: 24394121
The transfer modes are

 BLOCK_TRANSFER_MODE, COMPRESSED_TRANSFER_MODE,  STREAM_TRANSFER_MODE
by default it uses STREAM_TRANSFER_MODE
0
 
LVL 86

Expert Comment

by:CEHJ
ID: 24394311
>>you mean something like this:

yes
0

Featured Post

Free Tool: ZipGrep

ZipGrep is a utility that can list and search zip (.war, .ear, .jar, etc) archives for text patterns, without the need to extract the archive's contents.

One of a set of tools we're offering as a way to say thank you for being a part of the community.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Introduction This article is the first of three articles that explain why and how the Experts Exchange QA Team does test automation for our web site. This article explains our test automation goals. Then rationale is given for the tools we use to a…
In this post we will learn how to make Android Gesture Tutorial and give different functionality whenever a user Touch or Scroll android screen.
Viewers will learn one way to get user input in Java. Introduce the Scanner object: Declare the variable that stores the user input: An example prompting the user for input: Methods you need to invoke in order to properly get  user input:
Viewers will learn about the regular for loop in Java and how to use it. Definition: Break the for loop down into 3 parts: Syntax when using for loops: Example using a for loop:

719 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question