首页
最新活动
服务器租用
香港服务器租用
台湾服务器租用
美国服务器租用
日本服务器租用
新加坡服务器租用
高防服务器
香港高防服务器
台湾高防服务器
美国高防服务器
裸金属
香港裸金属服务器
台湾裸金属服务器
美国裸金属服务器
日本裸金属服务器
新加坡裸金属服务器
云服务器
香港云服务器
台湾云服务器
美国云服务器
日本云服务器
CDN
CDN节点
CDN带宽
CDN防御
CDN定制
行业新闻
官方公告
香港服务器资讯
帮助文档
wp博客
zb博客
服务器资讯
联系我们
关于我们
机房介绍
机房托管
登入
注册
帮助文档
专业提供香港服务器、香港云服务器、香港高防服务器租用、香港云主机、台湾服务器、美国服务器、美国云服务器vps租用、韩国高防服务器租用、新加坡服务器、日本服务器租用 一站式全球网络解决方案提供商!专业运营维护IDC数据中心,提供高质量的服务器托管,服务器机房租用,服务器机柜租用,IDC机房机柜租用等服务,稳定、安全、高性能的云端计算服务,实时满足您的多样性业务需求。 香港大带宽稳定可靠,高级工程师提供基于服务器硬件、操作系统、网络、应用环境、安全的免费技术支持。
联系客服
服务器资讯
/
香港服务器租用
/
香港VPS租用
/
香港云服务器
/
美国服务器租用
/
台湾服务器租用
/
日本服务器租用
/
官方公告
/
帮助文档
java上传文件到指定服务器
发布时间:2024-03-06 07:53:10 分类:帮助文档
java上传文件到指定服务器 首先要知道服务器的用户名和密码。 注意:一般情况,如果不是强制要求,尽量不要将文件上传到服务器 步骤: 1.导入依赖
com.jcraft
jsch
0.1.54
2.编写配置文件application.yml customize: remoteServer: sftp: SFTP_httpBaseUrl: /images/ # 访问附件的地址添加 一个映射 如 /images/ -》 /server-images/ SFTP_httpPort: 80 # 公网访问的端口 SFTP_directory: /server-images/ #主机保存附件目录 SFTP_host: 192.168.1.10 #主机 SFTP_port: 22 #端口号 SFTP_username: root #用户名 SFTP_password: 123456 #密码 3.编写文件上传所需要的工具类 import com.jcraft.jsch.*; import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Component; import org.springframework.web.multipart.MultipartFile; import java.time.LocalDate; import java.util.Properties; import java.util.UUID; / * 类描述: * 上传文件到服务器的 工具类 * * @ClassName SFTPUtil * @Author msi * @Date 2020/9/2 23:29 * @Version 1.0 */ @Component public class SFTPUtil { / * 返回公网访问的地址前缀 */ @Value("${customize.remoteServer.sftp.SFTP_httpBaseUrl}") protected String baseUrl; / * 公网访问的端口 */ @Value("${customize.remoteServer.sftp.SFTP_httpPort}") protected int port; / * 主机保存的目录 */ @Value("${customize.remoteServer.sftp.SFTP_directory}") protected String directory; / * 主机的IP */ @Value("${customize.remoteServer.sftp.SFTP_host}") protected String host; / * ssh端口 */ @Value("${customize.remoteServer.sftp.SFTP_port}") protected int sshPort; / * 用户名 */ @Value("${customize.remoteServer.sftp.SFTP_username}") protected String username; / * 密码 */ @Value("${customize.remoteServer.sftp.SFTP_password}") protected String password; / * 上传多文件到指定远程主机 * @param files 文件数组 * @return list */ public List
uploadMultipartFilesToServer(MultipartFile[] files) throws SftpException, JSchException, IOException { List
list = new ArrayList<>(); ChannelSftp sftp = null; Session session = null; sftp = this.connect(this.host, this.sshPort, this.username, this.password); session = sftp.getSession(); for (int i = 0; i < files.length; i++) { String originalFilename = files[i].getOriginalFilename(); // 生成文件夹名 yyyy-mm String relativePath = new StringBuilder().append(LocalDate.now().getYear()) .append("-").append(LocalDate.now().getMonthValue()).toString(); String uuid = UUID.randomUUID().toString().replace("-", "").toLowerCase(); int lastIndex = originalFilename.lastIndexOf("."); String fileSuffix = originalFilename.substring(lastIndex); String filePrefix = originalFilename.substring(0, lastIndex); String fileName = new StringBuilder().append(filePrefix).append(uuid).append(fileSuffix).toString(); // 文件上层目录 String directory = this.directory + relativePath; // 创建文件夹 this.createDir(directory, sftp); // 进入文件夹内 sftp.cd(directory); // 创建文件 sftp.put(files[0].getInputStream(), fileName); // 拼接返回格式 String s = new StringBuilder("http://").append(this.host).append(":").append(this.port) .append(this.baseUrl).append(relativePath).append("/").append(fileName).toString(); list.add(s); } // 关掉连接 sftp.disconnect(); sftp.getSession().disconnect(); return list; } / * 建立连接 * @param host 主机 * @param port 端口 * @param username 用户名 * @param password 密码 * @return */ public ChannelSftp connect(String host, int port, String username, String password) { ChannelSftp sftp = null; try { JSch jsch = new JSch(); jsch.getSession(username, host, port); Session sshSession = jsch.getSession(username, host, port); sshSession.setPassword(password); Properties sshConfig = new Properties(); sshConfig.put("StrictHostKeyChecking", "no"); sshSession.setConfig(sshConfig); sshSession.connect(); Channel channel = sshSession.openChannel("sftp"); channel.connect(); sftp = (ChannelSftp) channel; } catch (Exception e) { e.printStackTrace(); } return sftp; } / * 创建目录 * */ public void createDir(String createpath, ChannelSftp sftp) { try { if (isDirExist(sftp, createpath)) { sftp.cd(createpath); } String pathArry[] = createpath.split("/"); StringBuffer filePath = new StringBuffer("/"); // 循环创建目录 for (String path : pathArry) { if (path.equals("")) { continue; } filePath.append(path + "/"); if (isDirExist(sftp, filePath.toString())) { sftp.cd(filePath.toString()); } else { // 建立目录 sftp.mkdir(filePath.toString()); // 进入并设置为当前目录 sftp.cd(filePath.toString()); } } sftp.cd(createpath); } catch (SftpException e) { e.printStackTrace(); } } / * 判断目录是否存在 */ public boolean isDirExist(ChannelSftp sftp, String directory) { boolean isDirExistFlag = false; try { SftpATTRS sftpATTRS = sftp.lstat(directory); isDirExistFlag = true; return sftpATTRS.isDir(); } catch (Exception e) { if (e.getMessage().toLowerCase().equals("no such file")) { isDirExistFlag = false; } } return isDirExistFlag; } } 4.编写对应controller进行调试 @Autowired private UpdateFileUtil sftpUtil; / * 上传文件到服务器 * * @param files 图片 * @return */ @PostMapping("/file") public Result
> file(MultipartFile[] files) throws Exception { List
paths = sftpUtil.uploadMultipartFilesToServer(files); return Result.ofSuccess(paths); }
上一篇
安丘云服务器租用多少钱
下一篇
游戏sf服务器租用多少钱
相关文章
全网首份Nas-tool详细入门教程(包含一些问题的处理方法)
谷歌充值要美国电话怎么搞
备案号怎么放网页底部
传奇开服知识传奇服务器启动异常 An error occurred...... Database Engine
VM ESXi 密码重置
qq开通超级会员怎么用支付宝
nova手机怎么更新号码归属地
win2003安全策略怎么打开
vps怎么创建数据库
香港云服务器租用推荐
服务器租用资讯
·广东云服务有限公司怎么样
·广东云服务器怎么样
·广东锐讯网络有限公司怎么样
·广东佛山的蜗牛怎么那么大
·广东单位电话主机号怎么填写
·管家婆 花生壳怎么用
·官网域名过期要怎么办
·官网邮箱一般怎么命名
·官网网站被篡改怎么办
服务器租用推荐
·美国服务器租用
·台湾服务器租用
·香港云服务器租用
·香港裸金属服务器
·香港高防服务器租用
·香港服务器租用特价
7*24H在线售后
高可用资源,安全稳定
1v1专属客服对接
无忧退款试用保障
德讯电讯股份有限公司
电话:00886-982-263-666
台湾总部:台北市中山区建国北路一段29号3楼
香港分公司:九龙弥敦道625号雅兰商业二期906室
服务器租用
香港服务器
日本服务器
台湾服务器
美国服务器
高防服务器购买
香港高防服务器出租
台湾高防服务器租赁
美国高防服务器DDos
云服务器
香港云服务器
台湾云服务器
美国云服务器
日本云服务器
行业新闻
香港服务器租用
服务器资讯
香港云服务器
台湾服务器租用
zblog博客
香港VPS
关于我们
机房介绍
联系我们
Copyright © 1997-2024 www.hkstack.com All rights reserved.