栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

【通过SpringBoot对阿里云服务器实现文件上传】

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

【通过SpringBoot对阿里云服务器实现文件上传】

通过SpringBoot对阿里云服务器实现文件上传
    • 配置服务器
    • SpringBoot代码
    • 使用Apifox上传文件

平时我们做springboot项目的上传文件功能,上传文件的时候大部分都是将文件上传到本地服务器,这里我将实现把文件上传到云服务器

实现所需要用到的工具

1.云服务器,当然可以用虚拟机代替,将文件上传的位置,这边使用的是阿里云服务器;
2. Xshell,用于远程连接控制,也可以用来测试是否能够连接远程服务器,最重要的是能在上面安装宝塔面板,可以对远程服务器进行傻瓜式操作;
3. 宝塔面板,通过Xshell安装,当然如果熟悉linux命令的话,不安装也可以,不过我这边是安装上去了,主要是真的很方便;
4. IDEA,这个就不用多说了,Java开发基本都要用到的;
5. Apifox,这个是用来发送请求的,当然用postman也是可以的,省去自己编写前端代码;

配置服务器

1.开放端口号
你需要在云服务器那边将对应安全组的端口号打开,需要打开的端口号有下面这些20,21,39000-40000(linux系统),3000-4000(windows系统),22,80,443,3306,888
2.连接服务器
你需要Xshell连接到你的云服务器,连接成功后下面这样


3.安装宝塔面板
将下面的指令输入到Xshell命令行,即可进行安装

yum install -y wget && wget -O install.sh http://download.bt.cn/install/install_6.0.sh && sh install.sh ed8484bec

安装完成后会得到一个网站和用户名密码,登进去就能显示宝塔面板

其实我并不是很想写部署安装这些内容,这部分安装很多地方都有教程,如果你不能来到这一步的话,我这边推荐一个狂神的视频教程
服务器购买及宝塔部署环境说明

4.安装配置ftp
有了宝塔面板后这个就相当简单了
首先要在软件商城安装PureFtpd

然后在FTP界面上建立一个Ftp用户


5.这边尝试连接一下服务器

使用Xshell先将之前的连接断开
输入命令 :$ ftp ip地址

出现这个就说明我们能进来了,我们用这个用户上传的文件保存在下面的服务器目录

SpringBoot代码

1.导入ftp依赖

        
            commons-net
            commons-net
            3.3
        

2.Ftp工具类

public class FtpUtil {

    //服务器IP
    private static final String  FTP_ADDRESS = "这边放你的服务器ip";
    //端口号
    private static final int FTP_PORT = 21;
    //用户名
    private static final String FTP_USERNAME = "admin";
    //密码
    private static final String FTP_PASSWORD = "123456";


    public  static boolean uploadFile(String fileName, InputStream inputStream) throws IOException {

        boolean flag = false;
        FTPClient ftp = new FTPClient();

        try{
            //连接服务器
            int reply;
            ftp.connect(FTP_ADDRESS,FTP_PORT);
            ftp.login(FTP_USERNAME,FTP_PASSWORD);
            reply = ftp.getReplyCode();
            if(!FTPReply.isPositiveCompletion(reply)) {
                ftp.disconnect();
                return false;
            }
            //上传文件到服务器
            ftp.setFileType(FTPClient.BINARY_FILE_TYPE);
            ftp.enterLocalPassiveMode();
            ftp.storeFile(fileName,inputStream);
            inputStream.close();
            ftp.logout();
            flag = true;
        } catch (SocketException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        } finally {
            if (ftp.isConnected()) {
                ftp.disconnect();
            }
        }
        return flag;
    }
}

3.编写后端接口

    
    @PostMapping("/uploacFile")
    @ResponseBody
    public String uploacFile(@RequestParam("file")MultipartFile file) throws IOException {
        //形成文件流
        final InputStream inputStream = file.getInputStream();
        //获取文件名
        final String fileName = file.getOriginalFilename();
        //截取后缀
        final String suffix = fileName.substring(fileName.lastIndexOf("."));
        //为文件命名
        final String finalName = UUID.randomUUID() + suffix;

        boolean flag = FtpUtil.uploadFile(finalName,inputStream);

        return "状态码"+flag;
    }
使用Apifox上传文件

这边要使用post请求,并将文件放到请求体中

运行结果


这边顺便提一下,如果想要用虚拟机实现功能的朋友也是可以使用springboot的代码的,主要还是连接服务器配置会麻烦一些,。

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/885865.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号