Eine aktuelle Projektanforderung besteht darin, Dateien auf einen Bildserver hochzuladenLinux-System-Upload-Dateien, der Bildserver ist ein unter Linux bereitgestellter Tomcat-ContainerLinux-System-Upload-Dateien, über Linux-E-Books gibt es nicht viel zu sagen, Laden Sie einfach den Code hoch
Ein Tool kann es schaffen:
package com.supermap.sbsm.util; import com.jcraft.jsch.Channel; import com.jcraft.jsch.ChannelSftp; import com.jcraft.jsch.JSch; import com.jcraft.jsch.Session; import org.apache.commons.net.ftp.*; import java.io.File; import java.io.FileInputStream; import java.io.IOException; import java.io.InputStream; import java.net.SocketException; import java.util.Properties; import java.io.IOException; /** * @Author: zhangweixia * @Description: 创建服务器连接 * @Date:Created in 10:29 2020/6/24 * @Modified: */ public class FtpUtil { private static ChannelSftp sftp = null; /** * Description: 向FTP服务器上传文件 * @param host FTP服务器ip * @param port FTP服务器端口 * @param username FTP登录账号 * @param password FTP登录密码 * @param basePath FTP服务器基础目录,/home/ftpuser/images * @param filePath FTP服务器文件存放路径。例如分日期存放:/2018/05/28。文件的路径为basePath+filePath * @param filename 上传到FTP服务器上的文件名 * @param input 输入流 * @return 成功返回true,否则返回false */ public static boolean uploadFile(String host, int port, String username, String password, String basePath, String filePath, String filename, InputStream input) { boolean result = false; FTPClient ftp = new FTPClient(); File file=null; try { JSch jsch = new JSch(); //获取sshSession账号-ip-端口 Session sshSession = jsch.getSession(username, host, port); //添加密码 sshSession.setPassword(password); Properties sshConfig = new Properties(); //严格主机密钥检查 sshConfig.put("StrictHostKeyChecking", "no"); sshSession.setConfig(sshConfig); //开启sshSession链接 sshSession.connect(); //获取sftp通道 Channel channel = sshSession.openChannel("sftp"); //开启 channel.connect(); sftp = (ChannelSftp) channel; file=new File(basePath+filePath); //设置为被动模式 ftp.enterLocalPassiveMode(); //设置上传文件的类型为二进制类型 //进入到要上传的目录然后上传文件 sftp.cd(basePath+filePath); sftp.put(input,filename); input.close(); result = true; } catch (IOException e) { e.printStackTrace(); } catch (Exception e) { e.printStackTrace(); } finally { if (ftp.isConnected()) { try { ftp.disconnect(); } catch (IOException ioe) { } } } return result; } }
boolean bh = FtpUtil.uploadFile("服务器IP", 端口号,"服务器账号","服务器密码", "/data/wwes/sbsm/map/html/",FilePath,hFileName,hFileInputStream);
Oben: basePath: Basispfad für die Serverdateispeicherung
FilePath: Der Dateipfad, der dynamisch vor dem Basispfad gespleißt wird (je nach Bedarf können verschiedene Dateien so eingestellt werden, dass sie in verschiedenen Ordnern gespeichert werden)
hFileName: Dateiname (die Datei kann an Ihre Bedürfnisse angepasst werden)
hFileInputStream: Eingabestream für Datei-Upload, übergeben
InputStream hFileInputStream = hFile.getInputStream();获取
Rückgabe: true Wenn die Datei erfolgreich hochgeladen wurde, können Sie die hochgeladene Datei im entsprechenden Verzeichnis auf dem Image-Server unter Linux anzeigen
Vergessen Sie nicht, Deepin Linux zu mögen, danke!
Das obige ist der detaillierte Inhalt vonSo laden Sie Dateien auf einen Bildserver in einem Tomcat-Container unter Linux hoch. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!