JAVA 上传文件到另一台远程服务器(包含搭建文件服务器 基于Linux)
2021/12/4 7:19:50
本文主要是介绍JAVA 上传文件到另一台远程服务器(包含搭建文件服务器 基于Linux),对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
1.首先搭建一个文件服务器,不管你是本地虚拟机镜像创建的服务器,还是买的云服务器,都适用。
1)先去下载一个tomcat的安装包,如果你下不到没关系,我有。 链接:https://pan.baidu.com/s/1Yd7kI3kIN3SuKQsIsEFgtA 提取码:iyvs 2)解压到你想要的文件夹下,修改web.xml文件。搜索到下图所展示的地方 修改成所示代码。然后启动tomcat。
别忘了关闭防护火墙。可以使用nginx做代理,我这里没有做代理,只是开放了端口。不建议这么做,被渗透风险极大。只适用于学习DEMO。
3)在webapp目录下新建个文件夹,我这里叫files,然后访问路径下拼上文件夹 路径,再次访问就会是下面展示的样子:
2.开始准备上传文件的代码
1.新建一个springboot项目 2.除了常规web依赖 ,还需引入以下依赖
<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>
3.直接贴工具类
public class UploadUtil { private static ChannelSftp sftp = null; /** * Description: 向FTP服务器上传文件 * @param filename 上传到FTP服务器上的文件名 * @param input 输入流 * @return 成功返回true,否则返回false */ public static boolean uploadFile(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(服务器用户名, 服务器IP, 端口号); //添加密码 sshSession.setPassword(服务器密码); 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("/usr/local/tomcat/apache-tomcat-9.0.39/webapps/files/"); //设置为被动模式 ftp.enterLocalPassiveMode(); //设置上传文件的类型为二进制类型 //进入到要上传的目录 然后上传文件 sftp.cd("/usr/local/tomcat/apache-tomcat-9.0.39/webapps/files/"); 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; } }
InputStream哪来的 ,参数类型是MultipartFile,file.getInputStream() fileName 哪来的 ,file.getOriginalFilename();
有问题 评论区指教
这篇关于JAVA 上传文件到另一台远程服务器(包含搭建文件服务器 基于Linux)的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-11-23Springboot应用的多环境打包入门
- 2024-11-23Springboot应用的生产发布入门教程
- 2024-11-23Python编程入门指南
- 2024-11-23Java创业入门:从零开始的编程之旅
- 2024-11-23Java创业入门:新手必读的Java编程与创业指南
- 2024-11-23Java对接阿里云智能语音服务入门详解
- 2024-11-23Java对接阿里云智能语音服务入门教程
- 2024-11-23JAVA对接阿里云智能语音服务入门教程
- 2024-11-23Java副业入门:初学者的简单教程
- 2024-11-23JAVA副业入门:初学者的实战指南