私は何かを考え出すのに苦労しています。 (私はこれでかなり新しいです。) このjava pgmを書き込んで、大きなファイルを宛先サーバにftpしました。FTPクライアントの問題
public static void ftpUpload(String path, String upfileName, String dirName) throws Exception
{
FTPClient client = new FTPClient();
client.addProtocolCommandListener((ProtocolCommandListener) new PrintCommandListener(new PrintWriter(System.out)));
client.enterLocalPassiveMode();
FileInputStream fis = null;
int reply;
try {
client.connect(ftpserver);
client.login(ftpuserid, ftppasswd);
reply = client.getReplyCode();
if(FTPReply.isPositiveCompletion(reply)){
client.changeWorkingDirectory(ftpdirectoryName + "/" + dirName);
boolean mkDir = client.makeDirectory(getCurrentMMMYY().toLowerCase());
client.changeWorkingDirectory(getCurrentMMMYY().toLowerCase());
//Create an InputStream of the file to be uploaded
fis = new FileInputStream(path + upfileName);
//Store file to server
client.storeFile(upfileName, fis);
}
} catch (IOException e) {
e.printStackTrace();
} finally {
try {
if (fis != null) {
fis.close();
}
client.logout();
//client.disconnect();
} catch (IOException e) {
e.printStackTrace();
}
}
}
奇妙な何かが私が送信していたファイルに起こっている... 元サーバー上の私のファイルのいずれかのサイズが82575786で、とき:ここ は(コードが表示のために少し変更されて)のコードです私はこのファイルをftpして、ファイル全体をほぼ送信します。それは実際に82574867を送信します。(欠落している919) 発信元サーバー上の別のファイルは717885です。このファイルをftpすると、ファイル全体がほぼ送信されます。それは実際に717522を送信します。(欠落した363)
ログが抜けて何かがクラッシュしたかどうかを確認しましたが、転送に問題はありませんでした。転送を示す2つのログエントリがあります。
[08/09/11 20:21:13:618 EDT] 00000043 SystemOut O 221 - 717522バイトを1つのファイルに転送しました。 221 - 82574867バイトを1つのファイルに転送しました。
誰の助けも大いにありがたいです。 ありがとう ダン。
私が尋ねることができますだから、whydoes sendfileは1つの入力ストリームしか取らず、うまくいきません。どうも! – 98percentmonkey