编程语言
首页 > 编程语言> > java代码上传文件到服务器plus版,MultipartFile文件类型,不在涉及本地路径

java代码上传文件到服务器plus版,MultipartFile文件类型,不在涉及本地路径

作者:互联网

添加依赖

<!--sftp文件上传-->
<dependency>
<groupId>com.jcraft</groupId>
<artifactId>jsch</artifactId>
<version>0.1.54</version>
</dependency>

 

开始写工具类,直接拿去用:  

 

import com.jcraft.jsch.Channel;
import com.jcraft.jsch.*;

import java.io.*;
public class FtpUtils {

/**
* @param bytes 文件字节流
* @param fileName 文件名
* @throws Exception
*/
public static void sshSftp(byte[] bytes,String fileName) throws Exception{
//指定的服务器地址
String ip = "服务器ip地址";
//用户名
String user = "用户名";
//密码
String password = "密码";
//服务器端口 默认22
int port = 22;
//上传文件到指定服务器的指定目录 自行修改
String path = "/root";

Session session = null;
Channel channel = null;


JSch jsch = new JSch();


if(port <=0){
//连接服务器,采用默认端口
session = jsch.getSession(user, ip);
}else{
//采用指定的端口连接服务器
session = jsch.getSession(user, ip ,port);
}

//如果服务器连接不上,则抛出异常
if (session == null) {
throw new Exception("session is null");
}

//设置登陆主机的密码
session.setPassword(password);//设置密码
//设置第一次登陆的时候提示,可选值:(ask | yes | no)
session.setConfig("StrictHostKeyChecking", "no");
//设置登陆超时时间
session.connect(30000);


OutputStream outstream = null;
try {
//创建sftp通信通道
channel = (Channel) session.openChannel("sftp");
channel.connect(10000);
ChannelSftp sftp = (ChannelSftp) channel;


//进入服务器指定的文件夹
sftp.cd(path);

//列出服务器指定的文件列表
// Vector v = sftp.ls("*");
// for(int i=0;i<v.size();i++){
// System.out.println(v.get(i));
// }

//以下代码实现从本地上传一个文件到服务器,如果要实现下载,对换以下流就可以了
outstream = sftp.put(fileName);
outstream.write(bytes);

} catch (Exception e) {
e.printStackTrace();
} finally {
//关流操作
if(outstream != null){
outstream.flush();
outstream.close();
}
if(session != null){
session.disconnect();
}
if(channel != null){
channel.disconnect();
}
}
}

}

  controller层调用:

    @PostMapping("/file")
    public void upload(@RequestParam("file") MultipartFile file) throws Exception {
        byte[] bytes = file.getBytes();
        UDFUtils.sshSftp(bytes,file.getOriginalFilename());

    }

  postman测试:

 

 

 

 

yes,稻谷一天,完成,前端尽情的推拽吧!

标签:jsch,java,String,bytes,plus,file,import,服务器,MultipartFile
来源: https://www.cnblogs.com/xxcbz/p/15325519.html