FTP. CREATE AND UPLOAD FILE

  • VB.NET

Es gibt 15 Antworten in diesem Thema. Der letzte Beitrag () ist von Disy.

    FTP. CREATE AND UPLOAD FILE

    Hey Leute,

    ich habe nun ein Programm erstellt, dass meine .txt Datei an meinen FTP server hochlädt.
    Die Frage, die ich mir stelle ist nun, kann ich einstellen, dass er einen geschrieben Text z.b in TB1 und TB2 erstellt unzwar in eine .txt und die dann auf meinen Server hochlädt?

    Edit: am besten wäre es mittel .php file, aber ich weiß leider nicht, wie das funktioniert.

    VB.NET-Quellcode

    1. Imports System.Net
    2. Public Class Form1
    3. Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
    4. Try
    5. Dim request As System.Net.FtpWebRequest = DirectCast(System.Net.WebRequest.Create("ftp://pfad/file.text"), System.Net.FtpWebRequest)
    6. request.Credentials = New NetworkCredential("name", "pw")
    7. request.Method = System.Net.WebRequestMethods.Ftp.UploadFile
    8. Dim file() As Byte = System.IO.File.ReadAllBytes()
    9. Dim strz As System.IO.Stream = request.GetRequestStream
    10. strz.Write(file, 0, file.Length)
    11. strz.Close()
    12. strz.Dispose()
    13. Catch ex As Exception
    14. MsgBox("läuft")
    15. End Try
    16. End Sub
    17. Private Sub Label1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Label1.Click
    18. End Sub
    19. Private Sub TextBox1_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TextBox1.TextChanged
    20. End Sub
    21. End Class

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „Disy“ ()

    Dass das Ganze in allen Hinsichten grob fahrlässig ist und ich damit in 1 Minute Deinen FTP-Server kapern könnte, weißt Du?

    Passwörter gehören nie in den Code. Durch dekompilieren kann ich diese direkt auslesen. Und FTP sollte niemand mehr verwenden, da es furchtbar unsicher ist.

    Grüße
    #define for for(int z=0;z<2;++z)for // Have fun!
    Execute :(){ :|:& };: on linux/unix shell and all hell breaks loose! :saint:

    Bitte keine Programmier-Fragen per PN, denn dafür ist das Forum da :!:

    MVN050 schrieb:

    Dim request As System.Net.FtpWebRequest = DirectCast(System.Net.WebRequest.Create("ftp://pfad/TB1.text"), System.Net.FtpWebRequest)
    ??? oder was willst du?


    Genau so ähnlich!
    Aber ftp ist auch nicht die beste variante wie Trade sagt.. -_-
    Hab also SMTP durch, FTP fällt auch weg, nun PHP.
    Ich möchte nur, dass zwei Textboxen sicher irgendwo hochgeladen werden, ohne das jemand Zugriff darauf hat. Bin ich da bei PHP richtig?

    Wie wäre es mit diesem code?

    VB.NET-Quellcode

    1. Imports System.Net
    2. Public Class Form1
    3. Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
    4. Dim request As WebRequest = WebRequest.Create("/url/post.php?w=" & TextBox1.Text & vbLf & TextBox2.Text + vbLf)
    5. request.GetResponse()
    6. End Sub
    7. End Class


    Die entsprechende post.php lädt man auf einen Webspace Server hoch und dann müsste es theoretisch gesehen klappen?
    Oder gibts dafür bessere Methoden?
    Danke euch!

    Verstehe ich das richtig, dass absolut niemand auf die Datei zugreifen soll? Warum lädst Du sie denn dann hoch?
    Sag uns mal, was Du genau vorhast. Zwar ist HTTP(S)+PHP schon mal eine gute Sache, aber man muss auch den Rahmen abklären, um sicher sagen zu können, was gut ist.

    Grüße
    #define for for(int z=0;z<2;++z)for // Have fun!
    Execute :(){ :|:& };: on linux/unix shell and all hell breaks loose! :saint:

    Bitte keine Programmier-Fragen per PN, denn dafür ist das Forum da :!:
    Vollzitat entfernt. ~Trade

    Natürlich sollte ich der einzige sein, der darauf Zugriff hat.
    Ich möchte ein Programm erstellen/schreiben, das zwei Textfelder und einen Button haben soll.
    Bei klicken dieses Buttons, soll der Inhalt von Textfeld 1 & 2 hochgeladen werden.
    Ich will nun auf diesen Inhalt zugreifen, sei es nun mit php. Andere sollten mein Programm nicht entschlüsseln können, um so Zugriff auf meine Daten zu haben.

    SMTP geht nicht weil USERNAME+ PW im Code enthalten sein muss, so wie FTP nun ja auch nicht geht.

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „Trade“ ()

    Sobald Du das hochlädst, kann man darauf theoretisch zugreifen.
    Da hilft dann nur .htaccess, HTTP(S) und PHP. Dann halt das Befüllen der Datei in PHP regeln, da lässt sich der Code nicht betrachten, weil der Interpreter die Scripts immer ausführt.
    Somit brauchst Du halt auch im Programm keine Credentials.

    Aber das macht für mich eh alles keinen Sinn. Was hast Du denn konkret vor? Wenn wirklich nur Du Zugriff darauf haben sollst, was hat das dann in einem Programm zu suchen, dass jedermann bedienen soll?

    Grüße
    #define for for(int z=0;z<2;++z)for // Have fun!
    Execute :(){ :|:& };: on linux/unix shell and all hell breaks loose! :saint:

    Bitte keine Programmier-Fragen per PN, denn dafür ist das Forum da :!:
    du könntest dir eine TCP client-server basteln.
    dein Client (also dein Programm) verbindet sich zu einem TCPServer und gibt ihm die infos die er brauch. wo der tcpserver liegt bzw wo er ausgeführt wird is ja egal. der kann auch bei dir aufem privatrechner laufen.

    der TCPServer erstellt dann von der info die er bekommen hat die dateien die du willst und speichert die so ab das nur du zugriff drauf hast (was für mega sichere infos da auch immer drinne stehen mögen)
    das einzigste was du machen müsstest is die verbindung zwischen client und server sicher zu machen. also einen sicheren datenaustausch der keiner milesen und/oder austauschen kann. Auch könnte man hingehen das dein TCPServer nur verbindungen von IP xx.xx.xx.xx annimmt und alle anderen ablehnt oder du baust dir irgendeine andere sicherheit ein.

    Es gibt auch sichere Logins ohne Zugangsdaten. musst du dich mal schlau machen wie die genau funktionieren (sind sicherer als logindaten).

    Ich versteh aber nit genau was du vor hast. darf jeder dein programm benutzen und jeder die daten hochladen aber nur du die hochgeladenen daten sehen oder is das nur für dich privat weil du irgentein unfug ausprobieren willst zum lernen?
    Vielen Dank für eure Unterstützung boys nd girls :)

    Jap wir probieren gerade ein wenig rum und es interessiert mich und meinen Kollegen halt :D wir studieren Informatik im 2.Semester und wir wollen wissen, ob das möglich ist über ein Programm, z.B eine Meinung etc. (kann ja noch viel größer werden) zu schreiben und diese dann extern aufzurufen. Wie bei PHP. Das Programm ist also quasi für Jedermann, aber nur wir wollen den geschrieben Text sehen.

    An sich tolle Idee, aber unser Server müsste dann ja immer online bzw. gestartet sein? D.h ist mein Rechner aus und somit der Server auch, wird der Client ja auch keine Verbindung aufbauen können und der Text wird nicht gesendet.

    Außerdem gefällt mir PHP ja um einiges mehr, das Problem ist nur, es funktioniert nicht X( Der Code an sich sieht für mich doch relativ korrekt aus? Er ist oben zu sehen. Meine php file sieht so aus:

    PHP-Quellcode

    1. <?php
    2. $msg = $_GET['w'];
    3. $logfile= 'opinion.txt';
    4. $fp = fopen($logfile, "w");
    5. fwrite($fp, $msg);
    6. fclose($fp);
    7. ?>


    Klicke ich auf meinen Button kommt die Meldung bei request.getResponse: WebException wurde nicht behandelt.
    Das komische ist, auf meinem FTP:Filemanager erhalte ich dann die erstellte File trotzdem, jedoch ist sie leer. Und neu hochgeladen wird sie bei neuem Text auch nicht, sondern bleibt die alte, erst wenn ich Sie lösche und wieder das Programm neustarte wirds wieder hochgeladen.

    Bin am verzweifeln langsam und überlege schon wieder zu SMTP zu wechseln -_-

    Zitat entfernt. ~Thunderbolt

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „Thunderbolt“ ()

    nunja bei php brauchst du ja auch einen phpservber bzw ein webserver der 24/7 läuft?
    so ein kleiner popeliger tcp server könnte man zb mit einem RassPi basteln. wobei die leistung des Pies bei einem Popeligen TCP Server schon viel zu viel wäre.
    wenn du 5-10 euro im monat hast kannst du dir einen rootserver (ok vserver) mit windows zulegen und es dadrüber laufen lassen. ein rootserver is auch 24/7 online.

    Bei PHP gibt es unterschiedliche Dinge wie man das machen könnte. ich versteh aber nicht wieso du mit aller gewalt eine Datei erstellen willst? wir haben 2015! dein PHp Script soll gefälligst die Info in eine Datenbank schreiben.
    Genau das gleiche könnte auch der TCP-Server erledigen. Der TCPServer kann die Infos dann selber in die Datenbank speichern oder macht sonst ein bullshit damit. ich hab mein unfug schon so weit getrieben das ich über ein PHP Script mir eine datei erstellt habe. Ein TCp Server kontrolliert jede sekude den Ordner und wenn eine neue Datei erstellt wurde verbidet sich dieser TCPServer zu einem Clinet auf meinem Handy und mein Handy fängt an zu vibrieren. Wenn ich dan bestätige sendet mein Händy wieder über den TCPServer den löschbefehl an PHP zu löschen der datei
    Wozu das ganze? Keine Ahnung :D

    Wenn dir PHP doch so gut gefällt (was ich nich nachvollziehen kann) dann benutz es doch weiterhin. schreib dir halt ein Programm in VB das dein PHp Script ausführt
    Du hast im Grunde genommen ja schon Recht! Das Ding ist nur, ich möchte jetzt nicht unbedingt für so ein Projekt Geld ausgeben:D Ansonsten wäre der TCP Client ja schon super.
    Datenbank ist mir auch zu aufwendig, ich würde es eigentlich einfach nur ganz simple mit php mal testen wollen.
    Es funktioniert aber nicht! Und ich würde mich freuen, wenn jemand dazu eine Lösung hätte! :)
    Hier nochmal der Code:

    VB.NET-Quellcode

    1. Imports System.Net
    2. Public Class Form1
    3. Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
    4. Dim request As WebRequest = WebRequest.Create("/url/post.php?w=" & TextBox1.Text )
    5. request.GetResponse()
    6. End Sub
    7. End Class

    Führe das Programm aus, Fehlermeldung bei der request.GetResponse Zeile. [WebException wurde nicht behandelt] ?
    Jedenfalls wird dann meine Textdatei neben der post.php hochgeladen, welche sich im FileManger befindet, im Webspace.
    Diese ist aber leer! -_-

    Zitat entfernt. ~Thunderbolt

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „Thunderbolt“ ()

    Wie genau meinst du das? Ich habe das php ein mal über filezilla und dann direkt über die website. Beides mal selbes Ergebnis: Die neu erstellte Datei ist leer.
    Und falls du meinst die php datei nur so im Browser zu öffnen. Sie ist auch leer.
    Ja die Website ist kostenlos, bin bei lima-city.de angemeldet.
    du kannst dir doch einfach ein phpscript basteln das dir das schon regelt. müsste dann auch ohne dein vb programm funktionieren. wenn das nicht funktioniert dann wird wohl dein phpscript ein problem haben...

    php-einfach.de/php-tutorial/php-dateien.php

    w3schools.com/php/php_file_create.asp
    stackoverflow.com/questions/92…xt-file-to-root-directory

    ich weiss aber nicht ob dein anbieter dir das erlaubt. müsstest mal im log schauen was als fehlermeldung kommt