Pakete, Repositories und App-Kategorien suchen

Paketdetailsv3.0.0

ftpconnect

Einfache und zuverlässige Dart-FTP-Verbindungs-Bibliothek zur Interaktion mit FTP-Servern.

AndroidiOSmacOSWindowsLinux
30-Tage-Downloads
9470
Likes
141
Pub-Punkte
150

Paket installieren

flutter pub add ftpconnect

Paketübersicht

Aus öffentlichen Paketdaten erstellte Orientierung.

Eine einfache und zuverlässige Dart-Bibliothek zur Verbindung mit FTP-Servern, die nahtlose Dateiübertragungen über mehrere Plattformen ermöglicht. Sie bietet eine unkomplizierte API zur Interaktion mit entfernten FTP-Servern und unterstützt gängige Operationen wie Hochladen, Herunterladen, Auflisten von Dateien und Verwaltung von Verzeichnissen. Für Zuverlässigkeit und Benutzerfreundlichkeit konzipiert, integriert sie sich nahtlos in Flutter-Anwendungen für Android, iOS, macOS, Windows und Linux. Ideal für Anwendungen, die sichere oder automatisierte Dateiverwaltung über FTP erfordern.

Anwendungsfälle

  • Dateiübertragung zwischen App und FTP-Server
  • Automatisierte Sicherungssysteme
  • Remote-Dateiverwaltung in Apps
  • Synchronisieren von App-Daten mit FTP-Speicher
  • Konfigurationsdateien von FTP herunterladen

Hauptmerkmale

  • Plattformübergreifende Unterstützung
  • Einfaches und intuitives API
  • Robuste Fehlerbehandlung
  • Unterstützt Dateiupload/Download
  • Verzeichnisliste und Navigation

Geeignet für

  • Entwickler, die Dateisynchronisations-Apps erstellen
  • Apps, die den Zugriff auf remote Dateien benötigen
  • Backend-Dienste, die FTP verwenden
  • IoT-Geräte, die Dateien über FTP verwalten
  • Bildungsprojekte zu Netzwerkprotokollen

Hinweise

  • Stabile Internetverbindung erforderlich
  • Keine integrierte Verschlüsselung (verwenden Sie FTPS, falls erforderlich)
  • Beschränkt auf das FTP-Protokoll
  • Möglicherweise ist eine Firewall-Konfiguration erforderlich
  • Nicht geeignet für hochsichere Umgebungen ohne zusätzliche Maßnahmen

Original-README

Originaler README-Schnappschuss aus dem verknüpften Quell-Repository. Aktuelle Inhalte finden Sie im Repository.

Flutter FTP Connect

Flutter simple and robust dart FTP Connect Library to interact with FTP and SFTP Servers.

Key Features • Examples • Parameters • SFTP Support • License

Key Features

  • Supports SFTP/FTP/FTPS/FTPES
  • Upload files to the server
  • Download files/directories from the server
  • List directory contents
  • Manage files (rename/delete) and directories (create/delete)
  • Completely asynchronous functions

This library is originally based on dart_ftpclient, which has not been updated in 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.uploadFile(fileToUpload);
    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.downloadFile(fileName, File('myFileFromFTP.txt'));
    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 {
      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');

//Delete a non-empty directory (recursively)
ftpConnect.deleteNonEmptyDirectory('dirToDelete');

//check for directory existance
ftpConnect.checkFolderExistence('dirToCheck');

//create a directory if it does not exist
ftpConnect.createFolderIfNotExist('dirToCreate');

//Upload a local directory recursively to the server
ftpConnect.uploadDirectory(Directory('localDir'), 'remoteDir');

//Download a remote directory recursively
ftpConnect.downloadDirectory('remoteDir', Directory('localDir'));
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');

//upload in-memory bytes (no local file needed)
ftpConnect.uploadData(Uint8List.fromList([1, 2, 3]), 'remote.bin');

//download a remote file into memory as bytes
final Uint8List bytes = await ftpConnect.downloadToBytes('remote.bin');

Parameters

Common parameters (FTPConnect and SFTPConnect)
Property Description
host Hostname or IP Address
port Port number (FTP defaults to 21, FTPS to 990, SFTP to 22)
user Username (Defaults to anonymous)
pass Password if not anonymous login
showLog Enable Debug Logging (Defaults to false)
logger Custom logger
timeout Timeout in seconds to wait for responses (Defaults to 30)
FTP-only parameters (FTPConnect)
Property Description
securityType SecurityType.ftp / ftpes / ftps (Defaults to ftp)
SFTP-only parameters (SFTPConnect)
Property Description
privateKey PEM/OpenSSH private key content, used instead of pass
passphrase Passphrase protecting privateKey (if any)
onVerifyHostKey Optional host key verification handler

More details here.

SFTP support

SFTP is provided by the SFTPConnect class, powered by the pure-Dart dartssh2 package. Both FTPConnect and SFTPConnect implement the same FileTransferClient interface, so they share identical method names/signatures and you can swap one for the other by changing only the instantiated class.

ℹ️ dartssh2 is written in pure Dart, so SFTPConnect works on every platform supported by Dart/Flutter (except web, which has no raw TCP sockets).

import 'dart:io';
import 'package:ftpconnect/ftpconnect.dart';

main() async {
  SFTPConnect sftpConnect = SFTPConnect(
    'example.com',
    port: 22,
    user: 'user',
    pass: 'pass',
    showLog: true,
  );

  try {
    await sftpConnect.connect();

    // Upload a file
    File fileToUpload = File('fileToUpload.txt');
    await sftpConnect.uploadFile(fileToUpload);

    // List directory content
    List<FTPEntry> content = await sftpConnect.listDirectoryContent('.');
    print(content);

    // Download a file
    await sftpConnect.downloadFile('toDownload.txt', File('myFile.txt'));

    // Manage files/directories
    await sftpConnect.makeDirectory('newDir');
    await sftpConnect.rename('test1.txt', 'test2.txt');
    await sftpConnect.deleteFile('test2.txt');

    await sftpConnect.disconnect();
  } catch (e) {
    // error
  }
}

Authenticating with a private key instead of a password:

SFTPConnect sftpConnect = SFTPConnect(
  'example.com',
  user: 'user',
  privateKey: '''-----BEGIN RSA PRIVATE KEY-----
...
-----END RSA PRIVATE KEY-----''',
  passphrase: 'passphrase-for-key',
);

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.

Buy Me A Coffee

License

MIT

Kategorien

Abhängigkeiten

Abhängigkeiten 3 Einträge

Quell-Repository

Projekte, die dieses Paket verwenden

Noch keine Daten verfügbar.