java转输文件到linux服务器
参考
1、搭载文件服务器
1)下载tomcat,解压到linux服务器,修改web.xml文件,在webapps下创建files文件夹,启动tomcat
2)启动完成后即可访问,如果不能访问,看下网络策略,防火墙等是否关闭,建议这里使用nginx代理
2、上传功能代码
1)pom引入依赖
<dependency>
<groupId>commons-net</groupId>
<artifactId>commons-net</artifactId>
<version>3.6</version>
</dependency>
<dependency>
<groupId>com.jcraft</groupId>
<artifactId>jsch</artifactId>
<version>0.1.54</version>
</dependency>
2)功能代码
package com.czry.interfacetest.util;
import com.jcraft.jsch.*;
import org.apache.commons.fileupload.FileItem;
import org.apache.commons.fileupload.FileItemFactory;
import org.apache.commons.fileupload.disk.DiskFileItemFactory;
import org.apache.commons.net.ftp.FTPClient;
import org.springframework.web.multipart.MultipartFile;
import org.springframework.web.multipart.commons.CommonsMultipartFile;
import java.io.*;
import java.net.HttpURLConnection;
import java.net.URL;
import java.util.Properties;
public class UploadUtil {
private static ChannelSftp sftp = null;
/**
* Description: 向FTP服务器上传文件
* @param filename 上传到FTP服务器上的文件名
* @param input 输入流
* @return 成功返回true,否则返回false
*/
public static boolean uploadFile(String path,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("root", "192.168.10.129", 22);
//添加密码
sshSession.setPassword("123456");
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("/home/tomcat/apache-tomcat-9.0.39/webapps/files/"+path);
file.mkdirs();*/
//设置为被动模式
ftp.enterLocalPassiveMode();
//验证是否存在目录,不存在的话创建
if(createDir("/home/tomcat/apache-tomcat-9.0.39/webapps/files/"+path,sftp)){
//设置上传文件的类型为二进制类型
//进入到要上传的目录 然后上传文件
sftp.cd("/home/tomcat/apache-tomcat-9.0.39/webapps/files/"+path);
sftp.put(input, filename);
}
input.close();
result = true;
} catch (Exception