如何在 Linux 上的 Tomcat 将文件上传到图片服务器中-LINUX

首页 2024-07-07 10:29:09

最近一个项目的需求是将文件上传到图片服务器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.<a style="color:#f60; text-decoration:underline;" href="https://www.php.cn/zt/15972.html" target="_blank">apache</a>.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上图片服务器的相应目录下查看已上传的文件

别忘了点赞deepinin linux,感谢!

以上就是如何在这里 Linux 上的 Tomcat 将文件上传到图片服务器的详细内容,请关注其他相关文章!


p