Hi,
i m trying a transfer a pdf file from one server from another.
I m able to get the file through inputstream and got to write it through FileOutputStream at the desired place. the pdf file is getting created but when i try to open it , it shows me a message that this file has been corrupted. Also the size of the copied file is very large(98Kb) as compared to the original(28kb).
Could any one give a clue to the solution. Below is the code i have written.
import java.io.ByteArrayInputStream;
import java.io.DataInputStream;
import java.io.DataOutputStream;
import java.io.File;
import java.io.FileOutputStream;
import java.io.InputStream;
import java.io.OutputStream;
import java.util.Properties;
import org.apache.commons.net.ftp.FTPClient;
import org.apache.commons.net.ftp.FTPFile;
import org.apache.commons.net.ftp.FTP;
//import org.apache.tools.ant.taskdefs.optional.net.FTP
public class CpyFile
{
public static final
String FTP_APPEND_SUCCESS = "FTP_APPEND_SUCCESS";
public static final String FTP_APPEND_DATA_TRUNCATED = "FTP_APPEND_DATA_TRUNCATED";
public static void main(String[] args)
{
FTPClient client = null;
boolean boolLogin = false;
client = new FTPClient();
try
{
int maxTries = 3 ;
int tryCount = 0;
while (!boolLogin && tryCount++ < maxTries) {
client.connect("172.19.54.55");
boolLogin = client.login("upload", "upload");
}
if (!boolLogin) {
String ipaddress = "172.19.54.55";
String userid = "upload";
String password = "upload";
System.out.println(
"Unable to Connect to FTP Server IP Asdress: " + ipaddress + " user id: " + userid + " password: " + password);
}
else
{
System.out.println("****CONNECTED********");
System.out.println(client.getReplyString());
System.out.println("@@@@"+client.printWorkingDirectory());
FTPFile files[] = client.listFiles();
int i = files.length;
int j =0;
while( j < i)
{
System.out.println("+++"+files[j].getName());
j++;
}
ystem.out.println("!!!"+client.getDataConnectionMode());
client.enterLocalPassiveMode();
System.out.println("&&&&"+client.getDataConnectionMode()+"******");
boolean bool = client.changeWorkingDirectory("\\upload");
System.out.println(client.printWorkingDirectory());
int l = 0;
FTPFile files1[] = client.listFiles();
int k = files1.length;
while( l < k)
{
System.out.println("+++"+files1[l].getName());
l++;
}
FileOutputStream fStream = new FileOutputStream ("C:\\ftproot\\3996_GD_1144406443921.pdf");
OutputStream outstream = null ;
InputStream instream = null;
client.setFileType(FTP.BINARY_FILE_TYPE,FTP.BINARY_FILE_TYPE);
client.setFileTransferMode(FTP.BINARY_FILE_TYPE);
instream = client.retrieveFileStream("\\3996_GD_1144406443921.pdf");
byte[] data = new byte[99999];
int m =0, n=0;
m = instream.read(data);
System.out.println("@@"+data[0]);
System.out.println("@@"+m);
fStream.write(data);
fStream.close();
}
}
catch (java.io.IOException e)
{
e.printStackTrace();
}
finally
{
try
{
System.out.println("#######"+client.getDataConnectionMode()+"####"+client.getSystemName());
client.disconnect();
}
catch(Exception e)
{
e.printStackTrace();
}
}
}
}