Ich habe eine Datei zum Hochladen (sagen abc.pdf
). Ich möchte diese Datei zum ersten Mal als temporäre Datei hochladen (zB abc.pdf.temp
). Wenn die Datei dann erfolgreich übertragen (vollständig übertragen) wurde, muss ich sie in ihren ursprünglichen Namen umbenennen (abc.pdf
). Aber wenn die Datei nicht vollständig übertragen wird, muss ich die temporäre Datei löschen, die ich ursprünglich hochgeladen habe, da ich keine beschädigte Datei auf dem Server behalten möchte. Ist das mit dieser JSch-Bibliothek möglich? Unten ist der Beispielcode. Macht dieser Code Sinn, dies zu erreichen?Upload Wiederholungsmechanismus mit JSch Bibliothek
Beispielcode:
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);
}
Dies ist kein Code-Schreibdienst. Welches spezielle Problem haben Sie bei der Implementierung? Was hast du schon probiert? Zeig uns deinen Code. –
Kann ich superuser.com verwenden, um diese Informationen zu erhalten? – user3742125
Ich verstehe nicht. Sie haben eine Programmierfrage. Also solltest du hier fragen. Aber Sie müssen eine Frage mit einem Umfang dieser Website stellen. Das sollte Ihren aktuellen Code und Ihr spezifisches Problem beinhalten. Sie haben kein spezifisches Problem gestellt. Sie bitten uns, Ihre Arbeit für Sie zu erledigen. –