アップロードするファイルがあります(たとえばabc.pdf
)。初めてこのファイルを一時ファイル(たとえばabc.pdf.temp
)としてアップロードしたいと考えています。その後、ファイルが正常に転送された場合(完全に転送された場合)、名前を元の名前(abc.pdf
)に変更する必要があります。しかし、ファイルが完全に転送されていない場合、最初にアップロードした一時ファイルを削除する必要があります。これは、サーバーに破損したファイルを保存したくないからです。これは、このJSchライブラリを使用して達成することができますか?以下はサンプルコードです。これを達成するにはこのコードが意味がありますか?JSchライブラリを使用してアップロードの再試行メカニズム
サンプルコード:
originalFile = 'abc.pdf';
tempFile = 'abc.pdf.temp';
fileInputStream = createobject("java", "java.io.FileInputStream").init('C:\abc.pdf');
SftpChannel.put(fileInputStream,tempFile);
// Comparing remote file size with local file
if(SftpChannel.lstat(tempFile).getSize() NEQ localFileSize){
// Allow to Resume the file transfer since the file size is different
SftpChannel.put(fileInputStream,tempFile,SftpChannel.RESUME);
if(SftpChannel.lstat(tempFile).getSize() NEQ localFileSize){
// Check again if the file is not fully transferred (During RESUME) then
// deleting the file since dont want to keep a corrupted file in the server.
SftpChannel.rm(tempFile);
}
}else{//assuming file is fully transferred
SftpChannel.rename(tempFile ,originalFile);
}
これはコード作成サービスではありません。これを実装する際に特に問題がありますか?何を試しましたか?あなたのコードを私たちに教えてください。 –
この情報を得るためにsuperuser.comを使用できますか? – user3742125
私は分かりません。あなたはプログラミングの質問があります。だからここで尋ねるべきです。しかし、あなたはこのサイトの範囲を質問する必要があります。それはあなたの現在のコードとあなたの特定の問題を含める必要があります。あなたは特定の問題を尋ねなかった。あなたは私たちにあなたの仕事をするように求めています。 –