Flutter ftp上传文件

时间:2021-7-21 作者:qvyue

本章介绍

由于后台同事无法在.net上接收我的文件传输,所以他让我用ftp上传文件
本博客讲一下Flutter用ftp上传文件
有没有.net告诉我,你们到底能不能接收file流

插件介绍

ftpconnect

插件功能

  • 将文件上传到FTP
  • 从FTP下载文件/目录
  • 列出FTP目录的内容
  • 管理FTP文件(重命名/删除)
  • 管理文件压缩/解压缩
  • 完全异步函数

插件地址

pub插件地址

引入插件

打开Flutter项目的pubspec.yaml引入依赖,最新版本号请查看插件官网

ftpconnect: ^0.2.1

文件上传

让后台提供,Ftp服务的ip、端口、账号、密码

如果端口是21,则不用填写,默认是21端口

try {
      FTPConnect ftpConnect = FTPConnect(
       "ftp地址或域名",
        user:"ftp账号",
        pass: "ftp密码",
        debug: true,//是否开启日志打印
    port: 21,//端口号,如果默认是21则不用填写
      );
      var connect = await ftpConnect.connect();//利用填写好的ip密码等链接ftp服务器,链接返回值是一个bool值,true代表链接成功
      if (!connect) {//如果链接失败则提示,WeToast是Flutter的一个ui框架,自行换成自己的toast代码就可以
        WeToast.info(context)("Ftp服务器链接失败!");
        return;
      }
      var state = await ftpConnect.uploadFile(
        files[0],//path对象
        sRemoteName: "", //在服务器上保存的名称
      );//如果上传成功返回true,失败则是false
      print(state);
      await ftpConnect.disconnect();//最后关闭ftp连接
    } catch (e) {
      print(e);
    } finally {
      //省略
    }

我们发现上边代码虽然能成功上传,但是并没有设置路径的地方,比如我想上传的目录不是跟目录,那要怎么做呢?

上传路径

下方代码中有一个sRemoteName传值,我们知道这是文件名称,如果要上传的路径不是跟目录,那么就要改变sRemoteName

var state = await ftpConnect.uploadFile(
        files[0],//path对象
        sRemoteName: "", //在服务器上保存的名称
      );//如果上传成功返回true,失败则是false
var state = await ftpConnect.uploadFile(
        files[0],//path对象
        sRemoteName: "路径1/路径2/文件名称.后缀", //在服务器上保存的路径+名称
      );//如果上传成功返回true,失败则是false

通过以上代码就可以完成指定路径上传

声明:本文内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:qvyue@qq.com 进行举报,并提供相关证据,工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。