English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
Después de buscar información sobre la subida de archivos SFTP, hice un resumen para facilitar las consultas futuras. El código específico se muestra a continuación:
/** * subir archivo al servidor * * @param filePath * ruta del archivo * @param channelSftp * objeto channelSftp * @return */ public static boolean uploadFile(String filePath, ChannelSftp channelSftp) { OutputStream outstream = null; InputStream instream = null; boolean successFlag = false; try { File isfile = new File(filePath); if (isfile.isFile()) { outstream = channelSftp.put(isfile.getName()); File file = new File(filePath); if (file.exists()) { instream = new FileInputStream(file); byte b[] = new byte[1024]; int n; while ((n = instream.read(b)) != -1) { outstream.write(b, 0, n); } outstream.flush(); } successFlag = true; } } e.printStackTrace(); } try { if (instream != null) { instream.close(); } if (outstream != null) { outstream.close(); } } catch (IOException e) { e.printStackTrace(); } } return successFlag; } private static Session initJschSession() lanza JSchException { int ftpPort = 0; String ftpHost = ""; String port = "00"; //Puerto de SFTP String ftpUserName = ""; //Nombre de usuario String ftpPassword = ""; //Contraseña de la conexión String privateKey = ""; // String passphrase = ""; if (port != null && !port.equals("")) { ftpPort = Integer.valueOf(port); } JSch jsch = new JSch(); // Crear objeto JSch if (StringUtils.isNotBlank(privateKey) && StringUtils.isNotBlank(passphrase)) { jsch.addIdentity(privateKey, passphrase); } if (StringUtils.isNotBlank(privateKey) && StringUtils.isBlank(passphrase)) { jsch.addIdentity(privateKey); } jsch.getSession(ftpUserName, ftpHost, ftpPort); Session session = jsch.getSession(ftpUserName, ftpHost, ftpPort); // Obtener un objeto Session basado en el nombre de usuario, la ip del host y el puerto if (StringUtils.isNotBlank(ftpPassword)) { session.setPassword(ftpPassword); // Configurar contraseña } return session; } /** * Obtener conexión de ChannelSftp * * @param timeout * Tiempo de espera * @return Devuelve el objeto ChannelSftp * @throws JSchException */ public static ChannelSftp getChannelSftp(Session session, int timeout) lanza JSchException { Channel channel = null; Properties config = new Properties(); config.put("StrictHostKeyChecking", "no"); session.setConfig(config); // Establecer propiedades para el objeto Session session.setTimeout(timeout); // Configurar tiempo de espera session.connect(); // Establecer el enlace a través de la sesión channel = session.openChannel("sftp"); // Abrir el canal SFTP channel.connect(); // Establecer la conexión del canal SFTP return (ChannelSftp) channel; } /** * Desconectar el enlace SFTP * * @param session * Sesión * @param channel * Canal */ public static void closeConnection(Channel channel, Session session) { try { if (session != null) { session.disconnect(); //Cerrar la conexión de sesión } if (channel != null) { channel.disconnect(); //Desconectar la conexión } } e.printStackTrace(); } }
Los nombres de usuario y contraseñas aquí son los que se han configurado ellos mismos, el método aquí se ha encapsulado de manera simple, lo que facilita su uso.
Lo que se menciona anteriormente es una introducción simple del uso de Java para subir archivos al servidor a través de SFTP por parte del editor, esperamos que sea útil para todos. Si tienen alguna pregunta, por favor déjenos un mensaje, el editor responderá a tiempo. ¡También agradecemos mucho el apoyo de todos a la página web de tutorial de clamor!
Declaración: El contenido de este artículo se ha obtenido de la red, es propiedad del autor original, el contenido se ha subido por los usuarios de Internet de manera autónoma, este sitio web no posee los derechos de propiedad, no se ha realizado un procesamiento editorial humano y no asume responsabilidades legales relacionadas. Si encuentra contenido sospechoso de infracción de derechos de autor, por favor envíe un correo electrónico a: notice#w. Le agradecemos sinceramente el apoyo de todos a la página web de tutorial de clamor!3Aviso: Este contenido se ha obtenido de la red, es propiedad del autor original, el contenido se ha subido por los usuarios de Internet de manera autónoma, este sitio web no posee los derechos de propiedad, no se ha realizado un procesamiento editorial humano y no asume responsabilidades legales relacionadas. Si encuentra contenido sospechoso de infracción de derechos de autor, por favor envíe un correo electrónico a: notice#w proporcionando evidencia relevante, una vez confirmado, este sitio eliminará inmediatamente el contenido sospechoso de infracción.