近来一个项目的需求是上传文件到图片服务器中linux系统上传文件,图片服务器是布署在linux上的一个tomcat容器linux系统上传文件,话不多说linux 电子书,直接上代码
一个工具类即可搞定:
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);登录后复制上述:basePath:服务器文件储存基本路径
FilePath:基本路径前面动态拼接的文件路径(可依照须要,设置不同的文件储存到不同的文件夹下)
hFileName:文件名称(可依照须要自定义命名文件)
hFileInputStream:文件上传的输入流,通过
InputStream hFileInputStream = hFile.getInputStream();获取登录后复制返回:true文件上传成功,即可在linux上图片服务器中相应的目录下查看已上传的文件
别忘掉点赞deepin linux,感谢!
以上就是如何在 Linux 上的 Tomcat 容器中上传文件到图片服务器的详细内容!