作者:每天洗脸的小媳妇_853 | 来源:互联网 | 2023-09-03 22:21
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-netgroupId><artifactId>commons-netartifactId><version>3.6version>dependency><dependency><groupId>com.jcraftgroupId><artifactId>jschartifactId><version>0.1.54version>dependency>
3.直接贴工具类
public class UploadUtil {private static ChannelSftp sftp = null;public static boolean uploadFile(String filename, InputStream input) {boolean result = false;FTPClient ftp = new FTPClient();File file = null;try {JSch jsch = new JSch();Session sshSession = jsch.getSession(服务器用户名, 服务器IP, 端口号);sshSession.setPassword(服务器密码);Properties sshConfig = new Properties();sshConfig.put("StrictHostKeyChecking", "no");sshSession.setConfig(sshConfig);sshSession.connect();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();
有问题 评论区指教