最近做了一个任务,基于ftp文件上传功能,然后使用x-file-storage进行实现,然而找了很多资料,没有发现使用x-file-storage的实现,因此自己摸索成功后进行经验分享
今天主要接受如何在windows 11系统中快速搭建一个本地的FTP服务器,并使用x-file-storage进行FTP问文件上传,该配置也适用于其他windows版本。
1.配置IIS web服务器
【win+R】快捷键打开运行窗口,输入optionalfeatures后点击确定:在这里插入图片描述
2.配置IIS web站点

首先 我们在本地创建一个FTP服务器根目录文件夹 FTPServer (名字自定义)在这里插入图片描述
然后查看本机IP地址
打开运行【win+R】窗口输入cmd回车
然后输入ipconfig 查看IP在这里插入图片描述
接下来 在开始栏中搜索 IIS 并点击进入IIS管理器
在这里插入图片描述
打开后在左侧 “网站” 右键然后选择 打开 “添加FTP站点”
在这里插入图片描述
物理路径记得填刚刚创建的Ftp根目录文件夹路径:在这里插入图片描述
下一步后 IP地址记得填写本机的ip

在这里插入图片描述
再下一步
在这里插入图片描述

按照上配置后,点击完成,然后等待配置成功。

至此,整个配置就结束了,接下来测试一下。

测试

在刚刚创建本地的FTP根目录FtpServer 下随便放一个文件或者创建一个文件夹。
在这里插入图片描述
然后 新打开一个文件管理器,在地址栏输入 : ftp://192.168.xxx.xxx 就是你本机IP地址,然后回车
在这里插入图片描述

如果是第一次登录,需要输入账号密码,就是本机电脑解锁的用户名和密码,输入后确定。
就能在FTP站点上看到所有文件信息了。

至此,windows上的ftp服务完美解决

接下来就是使用x-file-storage多平台文件上传的插件来实现ftp上传文件
首先就是pom文件引入x-file-storage依赖

<dependency>
    <groupId>org.dromara.x-file-storage</groupId>
    <artifactId>x-file-storage-spring</artifactId>
    <version>2.2.1</version>
</dependency>
<dependency>
    <groupId>commons-net</groupId>
    <artifactId>commons-net</artifactId>
    <version>3.9.0</version>
</dependency>

<!--糊涂工具类扩展-->
<dependency>
    <groupId>cn.hutool</groupId>
    <artifactId>hutool-extra</artifactId>
    <version>5.8.28</version>
</dependency>

<!-- Apache 的对象池 -->
<dependency>
    <groupId>org.apache.commons</groupId>
    <artifactId>commons-pool2</artifactId>
    <version>2.11.1</version>
</dependency>

接下来就是配置文件(properties)

# 文件存储配置
dromara.x-file-storage.default-platform=ftp
dromara.x-file-storage.thumbnail-suffix=.min.jpg
#对应平台的配置写在这里
# FTP 存储平台配置
dromara.x-file-storage.ftp[0].platform=ftp
dromara.x-file-storage.ftp[0].enable-storage=true
dromara.x-file-storage.ftp[0].host=192.168.1.104
dromara.x-file-storage.ftp[0].port=21
dromara.x-file-storage.ftp[0].user=本机电脑解锁的用户名
dromara.x-file-storage.ftp[0].password=本机电脑解锁的密码
dromara.x-file-storage.ftp[0].domain=ftp://192.168.x.xxx/
#ftp.base-path=config/ # 基础路径
#ftp.storage-path=E://FTPServer
dromara:
  x-file-storage:
    default-platform: ftp
    thumbnail-suffix: .min.jpg
    ftp:
      - platform: ftp
        enable-storage: true
        host: 192.168.1.104
        port: 21
        user: lingjun
        password: 15815654748mn
        domain: ftp://192.168.1.104/
        base-path: config/ # 基础路径
        storage-path: E://FTPServer # 存储路径

这个时候就可以写一个接口直接测试ftp文件上传功能了

@PostMapping("/upload")
    public FileInfo upload(MultipartFile file) throws IOException {
        return fileStorageService.of(file)
                .setPlatform("ftp") // 指定存储平台
                .upload();
    }

最后就可以看见E://FTPServer中有上传的文件了
一些上传的其他需求可以阅读x-file-storage官方文档x-file-storage官方文档

Logo

Agent 垂直技术社区,欢迎活跃、内容共建。

更多推荐