1. package test;
2.
3. import java.io.FileWriter;
4. import java.io.PrintWriter;
5.
6. import com.jcraft.jsch.ChannelSftp;
7. import com.jcraft.jsch.JSch;
8. import com.jcraft.jsch.Session;
9. import com.jcraft.jsch.UserInfo;
10.
11. public class CargaSFTP {
12. private static final String user = "test";
13. private static final String host = "Ip-servidor";
14. private static final Integer port = 22;
15. private static final String pass = "**-Contraseña-**";
16.
17. public static void main(String[] args) throws Exception {
18. System.out.println("------------------- INICIO ----------------- ");
19. JSch jsch = new JSch();
20. Session session = jsch.getSession(user, host, port);
21. UserInfo ui = new SUserInfo(pass, null);
22.
23. /* Informacion de las rutas del archivo */
24. String nombreLocalArchivo = "localServidor.txt";
25. String carpetaLocal = "c:/test/";
26. String nombreRemotoArchivo = "NombreArchivoRemoto.html";
27. String carpetaRemota = "/listas/";
28.
29. session.setUserInfo(ui);
30. session.setPassword(pass);
31. session.connect();
32. ChannelSftp sftp = (ChannelSftp) session.openChannel("sftp");
33. sftp.connect();
34. generarFichero(carpetaLocal, nombreLocalArchivo);
35. // Nos ubicamos en la carpeta Remota
36. sftp.cd("/docs/web/" + carpetaRemota);
37. System.out.println("Subiendo ...");
38. // Colocamos el archivo local en el servidor a la carpeta remota.
39. sftp.put(carpetaLocal + nombreLocalArchivo, nombreRemotoArchivo);
40.
41. System.out.println("Archivo subido...");
42.
43. System.out.println("El archivo se puede verificar en la url:");
44. System.out.println("Ip_servidor/~test"
45. + carpetaRemota + nombreRemotoArchivo);
46.
47. sftp.exit();
48. sftp.disconnect();
49. session.disconnect();
50.
51. System.out.println("----------------- FIN ----------------- ");
52. }
53.
54. private static void generarFichero(String carpetaLocal,
55. String nombreLocalArchivo) {
56. FileWriter fichero = null;
57. PrintWriter pw = null;
58. try {
59. fichero = new FileWriter(carpetaLocal + nombreLocalArchivo);
60. pw = new PrintWriter(fichero);
61. pw.println("Fichero con extensión TXT, para ser cargado por SFTP");
62.
63. } catch (Exception e) {
64. e.printStackTrace();
65. } finally {
66. try {
67. if (null != fichero)
68. fichero.close();
69. } catch (Exception e2) {
70. e2.printStackTrace();
71. }
72. }
73. }
74. }
1.
2. package test;
3.
4. import com.jcraft.jsch.UserInfo;
5.
6. public class SUserInfo implements UserInfo {
7.
8. private String password;
9. private String passPhrase;
10.
11. public SUserInfo (String password, String passPhrase) {
12. this.password = password;
13. this.passPhrase = passPhrase;
14. }
15.
16. public String getPassphrase() {
17. return passPhrase;
18. }
19.
20. public String getPassword() {
21. return password;
22. }
23.
24. public boolean promptPassphrase(String arg0) {
25. return true;
26. }
27.
28. public boolean promptPassword(String arg0) {
29. return false;
30. }
31.
32. public boolean promptYesNo(String arg0) {
33. return true;
34. }
35.
36. public void showMessage(String arg0) {
37. System.out.println("SUserInfo.showMessage()");
38. }
39. }