JAVA代码实现上传文件至文件服务器(远程服务器、非项目当前所在服务器)

niudaxianren 2021-11-16 原文


JAVA代码实现上传文件至文件服务器(远程服务器、非项目当前所在服务器)

步骤一:添加依赖

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

步骤二:编写工具类

package com.example.vue.vuedemo;

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

import java.io.*;

/**
* Created by jlm on 2019-09-17 17:44
*/
public class FtpUtils {

/**
* 利用JSch包实现SFTP上传文件
* @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(1000);
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();
}
}
}

}

步骤三:写一个接口上传文件,调用工具类方法即可

package com.example.vue.vuedemo;

import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.multipart.MultipartFile;

import javax.servlet.http.HttpServletRequest;

/**
* Created by jlm on 2019-09-17 17:42
*/
@RestController
public class UploadController {

@RequestMapping(“file”)
public void upload(HttpServletRequest httpServletRequest, MultipartFile file) throws Exception {
byte[] bytes = file.getBytes();
FtpUtils.sshSftp(bytes,”1111.jpg”);

}

}

————————————————
版权声明:本文为CSDN博主「Rice_kil」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/Rice_kil/article/details/100934710

发表于
2020-03-04 14:01 
牛大闲人 
阅读(5228
评论(1
编辑 
收藏 
举报

 

版权声明:本文为niudaxianren原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://www.cnblogs.com/niudaxianren/p/12409134.html

JAVA代码实现上传文件至文件服务器(远程服务器、非项目当前所在服务器)的更多相关文章

  1. JAVA SFTP文件上传、下载及批量下载 – 牛大闲人

    JAVA SFTP文件上传、下载及批量下载   https://blog.csdn.net/xyjcfucdi […]...

  2. JAVA SFTP文件上传、下载及批量下载 – 牛大闲人

    JAVA SFTP文件上传、下载及批量下载   https://blog.csdn.net/xyjcfucdi […]...

  3. JAVA SFTP文件上传、下载及批量下载 – 牛大闲人

    JAVA SFTP文件上传、下载及批量下载   https://blog.csdn.net/xyjcfucdi […]...

  4. java实现QQ互联登录 – 牛大闲人

    java实现QQ互联登录 yml配置 server: port: 80 qq: oauth: http: // […]...

  5. JAVA SFTP文件上传、下载及批量下载 – 牛大闲人

    JAVA SFTP文件上传、下载及批量下载   https://blog.csdn.net/xyjcfucdi […]...

  6. JAVA SFTP文件上传、下载及批量下载 – 牛大闲人

    JAVA SFTP文件上传、下载及批量下载   https://blog.csdn.net/xyjcfucdi […]...

  7. 阿里大于发送短信(java) – 牛大闲人

    阿里大于发送短信(java) 一、短信签名设置   1、短信签名是什么?   签名是在短信内容开始或者末尾跟的 […]...

随机推荐

  1. 微信小程序开发实战(云开发)–资产管理工具

    添加首页 menu页面 截图展示 menu.js源码 // pages/menu/menu.js Page({ […]...

  2. 自定义校验注解ConstraintValidator

    一 前言 系统执行业务逻辑之前,会对输入数据进行校验,检测数据是否有效合法的。所以我们可能会写大量的if el […]...

  3. String.prototype.normalize()

    normalize() 方法会按照指定的一种 Unicode 正规形式将当前字符串正规化. 这是一个ES6方法 […]...

  4. Elasticsearch 5.5.0及 head插件安装指南

      ES5.0及以上的版本相比于上一个版本2.3.4(2015年10月发布)有了很大的提升和优化,期间间隔一年 […]...

  5. 官宣.NET 6 预览版4

    我们很高兴发布 .NET 6 Preview 4。我们现在大约完成了 .NET 6 发布的一半。现在是一个很好 […]...

  6. vulnhub-DC:3靶机渗透记录

    vulnhub-DC:3靶机渗透记录 准备工作 在vulnhub官网下载DC:1靶机www.vulnhub.c […]...

  7. 如何提高程序员的键盘使用效率? – fly97

    如何提高程序员的键盘使用效率?       随着互联网行业的发展与进步,程序员群体数量越来越壮大、工资越来越高 […]...

  8. Linux系统启动U盘制作工具

    1、UNetbootin UNetbootin 让你创建 Ubuntu 或者其他 Linux 发行版的可引导 […]...

展开目录

目录导航