A recent project requirement is to upload files to a picture serverlinux system upload files, the picture server is a tomcat container deployed on linuxlinux system upload files, not much to say about linux e-books, Just upload the code
One tool can do it:
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);
Above: basePath: basic path of server file storage
FilePath: The file path dynamically spliced in front of the basic path (different files can be set to be stored in different folders as needed)
hFileName: File name (the file can be customized according to your needs)
hFileInputStream: Input stream for file upload, passed
InputStream hFileInputStream = hFile.getInputStream();获取
Return: true If the file is uploaded successfully, you can view the uploaded file in the corresponding directory in the image server on Linux
Don’t forget to like deepin linux, thank you!
The above is the detailed content of How to upload files to image server in Tomcat container on Linux. For more information, please follow other related articles on the PHP Chinese website!