Flutter FTP Connect
Flutter simple and robust dart FTP Connect Library to interact with FTP Servers with possibility of zip and unzip files.
Key Features • Examples • License
Key Features
- Upload files to FTP
- Download files/directories from FTP
- List FTP directory contents
- Manage FTP files (rename/delete)
- Completely asynchronous functions
This Library is based on dart_ftpclient which not updated since few years.
Example upload file
###example 1:
import 'dart:io';
import 'package:ftpconnect/ftpConnect.dart';
main() async{
FTPConnect ftpConnect = FTPConnect('example.com',user:'user', pass:'pass');
File fileToUpload = File('fileToUpload.txt');
await ftpConnect.connect();
bool res = await ftpConnect.uploadFileWithRetry(fileToUpload, pRetryCount: 2);
await ftpConnect.disconnect();
print(res);
}
###example 2: step by step
import 'dart:io';
import 'package:ftpconnect/ftpConnect.dart';
main() async{
FTPConnect ftpConnect = FTPConnect('example.com',user:'user', pass:'pass');
try {
File fileToUpload = File('fileToUpload.txt');
await ftpConnect.connect();
await ftpConnect.uploadFile(fileToUpload);
await ftpConnect.disconnect();
} catch (e) {
//error
}
}
Download file
###example 1:
import 'dart:io';
import 'package:ftpconnect/ftpConnect.dart';
main() async{
FTPConnect ftpConnect = FTPConnect('example.com',user:'user', pass:'pass');
String fileName = 'toDownload.txt';
await ftpConnect.connect();
bool res = await ftpConnect.downloadFileWithRetry(fileName, File('myFileFromFTP.txt'));
await ftpConnect.disconnect();
print(res)
}
###example 2: step by step
import 'dart:io';
import 'package:ftpconnect/ftpConnect.dart';
main() {
FTPConnect ftpConnect = FTPConnect('example.com',user:'user', pass:'pass');
try {
String fileName = 'toDownload.txt';
await ftpConnect.connect();
await ftpConnect.downloadFile(fileName, File('myFileFromFTP.txt'));
await ftpConnect.disconnect();
} catch (e) {
//error
}
}
Other Features
###Directory functions:
//Get directory content
ftpConnect.listDirectoryContent();
//Create directory
ftpConnect.makeDirectory('newDir');
//Change directory
ftpConnect.changeDirectory('moveHereDir');
//get current directory
ftpConnect.currentDirectory();
//Delete directory
ftpConnect.deleteDirectory('dirToDelete');
//check for directory existance
ftpConnect.checkFolderExistence('dirToCheck');
//create a directory if it does not exist
ftpConnect.createFolderIfNotExist('dirToCreate');
###File functions:
//rename file
ftpConnect.rename('test1.txt', 'test2.txt');
//file size
ftpConnect.sizeFile('test1.txt');
//file existence
ftpConnect.existFile('test1.txt');
//delete file
ftpConnect.deleteFile('test2.zip');
Paramaters
Properties | Description |
---|---|
host |
Hostname or IP Address |
port |
Port number (Defaults to 21) |
user |
Username (Defaults to anonymous) |
pass |
Password if not anonymous login |
debug |
Enable Debug Logging |
logger |
custom logger |
securityType |
FTP/FTPES/FTPS default FTP |
timeout |
Timeout in seconds to wait for responses (Defaults to 30) |
#more details here
View more Examples
Support
If this plugin was useful to you, helped you to deliver your app, saved you a lot of time, or you just want to support the project, I would be very grateful if you buy me a cup of coffee.
License
MIT