Ich werde folgende Unterpunkte behandeln:
-was ist FTP?
-einen FTP-Server einrichten
-Dateien und Strings downloaden
-Dateien und Strings uploaden
-Datei von FTP-Server umbenennen
-Datei von FTP-Server löschen
-FTP anwenden/Beispielprogramm
-Vor- und Nachteile
1. Was ist FTP?
File Transfer Protocol (Deutsch: Dateiübertragungsprotokoll) ist eine Art Netzwerkprotokoll, welches zur Dateiübertragung verwendet werden kann.
2. einen FTP-Server einrichten
Um überhaupt einen FTP-Server in unseren Programmen zu verwenden, müssen wir uns erstmal einen besorgen. Einen webspace bekommt man kostenlos im Internet, man kann aber auch einen kaufen, aber für den Anfang reicht ein kostenloser.
Den Webspace nehmen wir jetzt mal beispielsweise von
. Wenn ihr schon einen habt könnt ihr den natürlich auch verwenden, vorrausgesetzt ihr wisst den Benutzername und das Passwort, was ich aber noch erklären werde.Als erstes registriert ihr euch und loggt euch ein.
Dann klickt ihr links oben in der Navigationsleiste auf "Neues Projekt" :
Dann müsst ihr die Projektart auswählen. Für FTP-Zugriff brauchen wir einen Webspace:
Nun müssen wir auf der darrauffolgenden Seite eine Art Formular ausfüllen:
Dann müssen wir noch einen Domainnamen angeben. Dieser ist allerdings nur für Webseiten interessant:
Dann wird unser Projekt eingerichtet. Wie beschrieben kann das bis zu 15 min dauern:
Wenn wir jetzt auf unser angelegtes Projekt klicken und runterscrollen, können wir dort unsere Zugangsdaten für den FTP-Server sehen:
Das Passwort für den Server ist unser Accountpasswort.
Um jetzt zu sehen, welche Dateien sich auf unserem FTP-Server befinden, brauchen wir noch einen Clienten. Der beste den ich kenne ist
.Wenn ihr es installiert habt, könnt ihr euch nun mit eurem FTP-Server verbinden.
Die Zugangsdaten kennen wir ja jetzt.
Das Textfeld "Port" lasst ihr einfach leer.
Wenn ihr alles richtig gemacht habt seid ihr nun mit eurem FTP-Server verbunden.
jetzt könnt ihr die Dateien und Ordner betrachten, welche sich in eurem Webspace befinden.
Normalerweise ist euer Webspace leer, bis auf den Ordner "www".
Dieser Ordner ist für Webseiten gedacht.
Um Strings hochzuladen brauchen wir aber erst eine .txt Datei.
Normalerweise könnt ihr einfach eine auf dem Desktop erstellen und sie in eure Webspace ziehen,
doch wir machen es mit Visual Basic!!!
3. Dateien und Strings uploaden
Für die verbindung zwischen dem FTP-Server und eurem Programm braucht ihr einen Webclient. Dafür legen wir eine Variable an:
Dim client As New Net.WebClient
Mithilfe des Clients können wir uns nun mit dem FTP-Server verbinden:
Client.Credentials = New Net.NetworkCredential("Username", "Passwort")
Logischerweise sind die Logindaten die selben wie die, die wir in Filezilla verwendet haben.
Nun sind wir verbunden und können Daten zwischen dem Server und userem Computer austauschen. Da wir später mal Strings hochladen wollen,
werden wir mal eine .txt-Datei hochladen.
Wichtig: Die .txt-Datei muss vorher auf unserem PC gespeichert sein!
Also erstellen wir uns eine neue unter C:/Users/Public
Die Datei nennen wir einfach mal Text.txt.
Wichtig: Ihr könnt die .txt-datei überall speichern, um Fehler zu vermeiden habe ich aber den Ordner Public verwendet, da dieser Ordner "Öffentlich"
geändert werden kann, was später im Programm wichtig ist!
Nun laden wir das ganze auf unseren Server hoch:
My.Computer.Network.UploadFile("C:\Users\Public\Te xt.txt", "ftp://www12.subdomain.com/Text.txt", "Benutzername", "Passwort")
Als erstes geben wir den Dateipfad an, damit das Programm weiss, welche Datei es hochladen soll.
Dann geben wir unseren FTP-Server an und den zukünftigen Dateiname auf dem FTP-Server.
Wichtig: www12.subdomain.com ist NUR EIN BEISPIEL! Natürlich müsst ihr wieder eure eigene nehmen, wie ihr sie bei Filezilla angegeben habt.
Am Ende wieder die Benutzerdaten.
Nun debuggen wir das ganze und wecheseln zu Filezilla. Dann verbinden wir uns erneut und siehe da; eine Datei mit dem Namen Text.txt.
Diese Datei ist jetzt erstmal leer. Doch das wollen wir ändern!
Natürlich mit Visual Basic ^^
Als erstes erstellen wir wieder eine Client-Variable und die Verbindung:
Dim client As New Net.Webclient
client.Credentials = New Net.NetworkCredential("Username","Passwort")
Und nun laden wir unseren ersten String in die Datei Text.txt auf unserem FTP-Server:
client.UploadString("ftp://www12.subdomain.com/Text.txt", "Es hat geklappt!")
Dann deguggen wir das ganze und wechseln wieder zu Filezilla.
Nun macht ihr einen Doppelklick auf die Datei Text.txt. Jetzt könnt ihr den text lesen, den wir oben verwendet haben (:
Aber das ganze geht natürlich auch umgekehrt:
4. Dateien und Strings Downloaden
Wie immer müssen wir uns logischer weise wieder verbinden. Ich denke mal ihr solltet den Code dafür schon kennen, ich werde ihn allerdings der
Vollständigkeit halber dazuschreiben:
Dim client As New Net.Webclient
client.Credentials = New Net.NetworkCredential("Username","Passwort")
Wir fangen mit dem Downloaden von Dateien an. Allerdings müssen wir den Speicherort der Datei angeben, und wie beim hochladen nehmen wir wieder C:/Users/Public
Weil dort aber schon eine Datei mit dem namen Text.txt vorhanden ist, und wir beim Downloaden ja die selbe dort speichern wollen, löschen wir die alte, leere Datei:
If My.Computer.FileSystem.FileExists("C:\Users\Public \Text.txt") = True Then
Kill("C:\Users\Public\Text.txt")
End If
Nun ist Platz für die neue Datei, welche wir uns mit folgendem Code vom FTP-Server ziehn:
My.Computer.Network.DownloadFile("ftp://www12.subdomain.com/Text.txt, "C:\Users\Public\Text.txt", "Username", "Passwort")
Was ist passiert?
Als erstes geben wir die Datei an,welche wir runterladen wollen.
Dann geben wir einen Speicherort an und wieder die Logindaten.
Genauer genommen würde dieser Code auch ohne den Client und den Login funktionieren, da wir aber noch Strings downloaden wollen, hab ich ihn mal dazu gemacht, das Selbe
gilt auch für das Uploaden.
So, wenn wir jetzt den Ordner C:/Users/Public öffnen und die Datei Text.txt öffnen, können wir sehen, dass die Datei nun nicht mehr leer ist, sondern der Text,
welchen wir hochgeladen haben, vorhanden ist.
Nun wollen wir die Datei aber nicht erst Downloaden um uns den Inhalt anzusehn, wir wollen nur den Text. Für diesen Fall kann man mit folgendem Code ganz einfach den
String downloaden:
'Client erstellen
Dim client As New Net.Webclient
'Verbinden
client.Credentials = New Net.NetworkCredential("Username","Passwort")
'String downloaden
Richtextbox1.text = client.DownloadString("ftp://www12.subdomain.com/Text.txt")
Nun wird in der Richtextbox der Text aus der Datei Text.txt, welche sich auf unserem Server befindet, angezeigt.
5. Datei von FTP-Server umbenennen
Das umbenennen funktioniert über FTPWebrequest, und nicht über den client:
Dim request As Net.FtpWebRequest = Net.FtpWebRequest.Create("Link zum FTP-Ordner")
request.Method = Net.WebRequestMethods.Ftp.ListDirectory
request.Credentials = New Net.NetworkCredential("Benutzername", "Passwort")
Dim response As Net.FtpWebResponse = request.GetResponse()
6. Dateien von FTP-Server löschen
Das löschen funktioniert ebenfalls über Request.
Der Code zum Löschen von Dateien ist folgender:
Dim request As Net.FtpWebRequest = Net.FtpWebRequest.Create("Link zur datei")
request.Method = Net.WebRequestMethods.Ftp.DeleteFile
request.Credentials = New Net.NetworkCredential("Benutzername", "Passwort")
Dim response As Net.FtpWebResponse = request.GetResponse()
8. FTP anwenden/Beispielprogramm
Als Beispielprogramm nehmen wir jetzt mal ein Chat. FTP für ein Chat zu verwenden ist zwar nicht empfehlenswert, aber so versteht man wenigstens das Prinzip von FTP gut (:
Wir brauchen natürlich noch eine neue .txt-Datei auf unserem Server.
Die ziehen wir uns jetzt einfach mal so per Filezilla rein und nennen sie Chat.txt.
Dann erstellen wir uns ein neues Projekt in Visual Basic und gestalten mal die Form.
Die Steuerelemente die wir verwenden sind:
2 Richtextboxen
1 Button
1 Timer mit dem Intervall 5000 und Enabled = True
1 Label
1 Textbox
So sieht das dann aus:
Ist zwar keine designerische Höchstleistung aber darum geht es nicht (:
Dann machen wir einen Doppelklick auf den "Senden" -Button und schreiben da als Code rein:
Dim alter_text As String
Dim client As New Net.WebClient
client.Credentials = New Net.NetworkCredential("Username", "Passwort")
'alten Text downloaden
alter_text = client.DownloadString("FTP://www19.Subdomain.com/Chat.txt")
'Text hochladen
client.UploadString("ftp://www19.subdomain.com/Chat.txt", alter_text & TextBox1.Text & ":" & RichTextBox2.Text & vbCrLf)
Was ist passiert?
Als erstes erstellen wir natürlich eine Verbindung.
Dann laden wir den alten String runter.
Und zum Schluss laden wir diesen wieder hoch, allerdings fügen wir den Inhalt der Textbox1, welche den Namen beinhaltet, hinzu, und die eigentliche Nachricht aus der Richtextbox2
Nun wollen wir aber noch den Chatverlauf lesen können. Dafür müssen wir den Inhalt der Textdatei in die Richtextbox1 einfügen. Und hier verwenden wir den Timer. Also einen Doppelklick auf den Timer und dann diesen Code einfügen:
Dim client as new net.WebClient
client.Credentials = New Net.NetworkCredential ("Username","Passwort")
Richtextbox1.text = client.DownloadString("FTP://www19.Subdomain.com/Chat.txt")
Was ist passiert?
als erstes natürlich wie immer die Verbindung und dann wird der Text aus der .txt-Datei in unsere Richtextbox eingefügt.
Das wars eingentlich schon mit dem Coden, jetzt haben wir ein ganz simples Chat. Normalerweise ist FTP nicht gerade das Beste für ein Chat, da ist TCP schon besser geeignet, aber zur Verdeutlichung ist es optimal.
9.. Vor- und Nachteile
Zum Schluss wollte ich euch noch mit den Vor- und Nachteilen vertraut machen.
Vorteile:
- einfache Benutzung
- Einen Webspace gibt es kostenlos im Internet
Nachteile:
-Jeder, der das Programm in die Finger bekommt, kann die Zugangsdaten zum Server auslesen
So, das war dann mal mein erstes Tutorial auf e*pvpers und hat auch gedauert es zu schreiben, ich hoffe ich konnte euch helfen und euch mit FTP vertraut machen.
Wenn ihr noch Fragen habt, dann scheißt auf die Leute die sagen, das ist doch einfach, das kann man sich ja denken usw. und fragt einfach







