本章介紹
由于后臺(tái)同事無法在.net上接收我的文件傳輸,所以他讓我用ftp上傳文件
本博客講一下Flutter用ftp上傳文件
有沒有.net告訴我,你們到底能不能接收file流
插件介紹
ftpconnect
插件功能
- 將文件上傳到FTP
- 從FTP下載文件/目錄
- 列出FTP目錄的內(nèi)容
- 管理FTP文件(重命名/刪除)
- 管理文件壓縮/解壓縮
- 完全異步函數(shù)
插件地址
引入插件
打開Flutter項(xiàng)目的pubspec.yaml引入依賴,最新版本號(hào)請查看插件官網(wǎng)
ftpconnect: ^0.2.1
文件上傳
讓后臺(tái)提供,F(xiàn)tp服務(wù)的ip、端口、賬號(hào)、密碼
如果端口是21,則不用填寫,默認(rèn)是21端口
try {
FTPConnect ftpConnect = FTPConnect(
"ftp地址或域名",
user:"ftp賬號(hào)",
pass: "ftp密碼",
debug: true,//是否開啟日志打印
port: 21,//端口號(hào),如果默認(rèn)是21則不用填寫
);
var connect = await ftpConnect.connect();//利用填寫好的ip密碼等鏈接ftp服務(wù)器,鏈接返回值是一個(gè)bool值,true代表鏈接成功
if (!connect) {//如果鏈接失敗則提示,WeToast是Flutter的一個(gè)ui框架,自行換成自己的toast代碼就可以
WeToast.info(context)("Ftp服務(wù)器鏈接失?。?);
return;
}
var state = await ftpConnect.uploadFile(
files[0],//path對象
sRemoteName: "", //在服務(wù)器上保存的名稱
);//如果上傳成功返回true,失敗則是false
print(state);
await ftpConnect.disconnect();//最后關(guān)閉ftp連接
} catch (e) {
print(e);
} finally {
//省略
}
我們發(fā)現(xiàn)上邊代碼雖然能成功上傳,但是并沒有設(shè)置路徑的地方,比如我想上傳的目錄不是跟目錄,那要怎么做呢?
上傳路徑
下方代碼中有一個(gè)sRemoteName傳值,我們知道這是文件名稱,如果要上傳的路徑不是跟目錄,那么就要改變sRemoteName
var state = await ftpConnect.uploadFile(
files[0],//path對象
sRemoteName: "", //在服務(wù)器上保存的名稱
);//如果上傳成功返回true,失敗則是false
var state = await ftpConnect.uploadFile(
files[0],//path對象
sRemoteName: "路徑1/路徑2/文件名稱.后綴", //在服務(wù)器上保存的路徑+名稱
);//如果上傳成功返回true,失敗則是false
通過以上代碼就可以完成指定路徑上傳