String sicher und schnell auf FTP hochladen?

  • VB.NET

Es gibt 37 Antworten in diesem Thema. Der letzte Beitrag () ist von DrVisualBasic.

    String sicher und schnell auf FTP hochladen?

    Hallo Zusammen...
    Derzeit nutze ich für einen FTP Upload diesen Code:

    VB.NET-Quellcode

    1. Dim client As New Net.WebClient
    2. client.Credentials = New Net.NetworkCredential("Benutzername", "Passwort")
    3. client.UploadString("ftp://...../Ziel.txt", TextBox1.Text)


    Jetzt ist meine Frage ob es eine bessere und stabilere Methode für einen Textupload gibt? Im Extremfall möchte ich einen Textbox Inhalt in 2000ms Abstand hochladen.
    Dabei dürfen keine Fehler auftreten. Kennt jemand eine bessere Methode als meine?

    Danke euch!!
    Das Tutorial ist gut... Habe jetzt folgenden Code:

    VB.NET-Quellcode

    1. Try
    2. wc.Encoding = System.Text.Encoding.Default
    3. wc.Headers.Add("Content-Type", "binary/octet-stream")
    4. Dim result As String = wc.UploadString("http://....upload.php?d=", "POST", "Ich bin ein Test Text")
    5. Dim s As String = System.Text.Encoding.UTF8.GetString(result, 0, result.Length)
    6. MessageBox.Show(s)
    7. Catch ex As Exception
    8. MessageBox.Show(ex.Message)
    9. End Try


    Habe versucht den Code auf einen String Upload zu modifizieren... Hat nicht ganz geklappt... wie muss de Code lauten wenn ich einen String direkt hochladen will? Und nein ich möchte den String nicht erst als TXT als Lokale Datei auf meinem PC zwischenspeichern! Ich möchte den String direkt stabil und schnell hochladen!

    Hier ist das Original Tutorial: Klick
    schon mit

    VB.NET-Quellcode

    1. Try
    2. wc.Encoding = System.Text.Encoding.Default
    3. wc.Headers.Add("Content-Type", "binary/octet-stream")
    4. Dim result As String = wc.UploadString("http://....upload.php?d=", "POST", String)
    5. Dim s As String = System.Text.Encoding.UTF8.GetString(result, 0, result.Length)
    6. MessageBox.Show(s)
    7. Catch ex As Exception
    8. MessageBox.Show(ex.Message)
    9. End Try
    versucht?

    Bei mir funzt das...

    VB.NET-Quellcode

    1. Dim text as string = textbox1.Text
    2. dim wc as new net.webclient
    3. Try
    4. wc.Encoding = System.Text.Encoding.Default
    5. wc.Headers.Add("Content-Type", "binary/octet-stream")
    6. Dim result As String = wc.UploadString("http://....upload.php?d=", "POST", text)
    7. Dim s As String = System.Text.Encoding.UTF8.GetString(result, 0, result.Length)
    8. MessageBox.Show(s)
    9. Catch ex As Exception
    10. MessageBox.Show(ex.Message)
    11. End Try


    So hab ich das gemeint ^^
    Das ist mir klar... Problem ist das result... Vorher war der Code ja dafür bestimmt eine Dazei also bytes hoch zu laden...
    deswegen hab ich jetzt folgenden Fehler!!! (siehe Bild)

    Außerdem ist die PHP Datei auf dem Server ja dafür ausglegt eine Datei hoch zu laden... Jetzt besteht ja gar keine Datei... Die PHP Datei weiß mit einem String ja gar nichts an zu fangen.... Kann sich jetzt einer mal bitte alles nochmal ausführlich anschauen bevor er antwortet. So einfach geht das alles nicht!! Wie ist mir eigentlich auch egal... Hauptsache mein String landet schnell und sicher (stabil) auf meinem FTP Server :D
    Bilder
    • img.PNG

      16,48 kB, 950×150, 187 mal angesehen

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

    Ja aber es gibt doch noch mehr Probleme :D Die PHP Datei auf dem Server ja dafür ausglegt eine Datei hoch zu laden... Jetzt besteht ja gar keine Datei... Die PHP Datei weiß mit einem String ja gar nichts an zu fangen.... Kann sich jetzt einer mal bitte alles nochmal ausführlich anschauen bevor er antwortet. So einfach geht das alles nicht!! Wie ist mir eigentlich auch egal... Hauptsache mein String landet schnell und sicher (stabil) auf meinem FTP Server
    Natürlich ist das einfahc, bloß hast du absolut gar keine Ahnung was du da machst und kopierst nur irgendwelchen Code.

    Wenn die PHP Datie für den Upload gedacht war, dann musst du die PHP Datei umschreiben, dass sie den übergebenen String eben in eine Datei speichert/anhängt.

    Copy und Paste wirst du hier nicht kriegen.
    Warum?? Hast dir mal die Methode UploadString angesehen?? Die hat als Rückgabetyp String und nicht Byte(), Byte() wäre es nur wenn man UploadFile benutzen würde.

    Der TE hat bloß überhaupt keine Ahnung was er macht, kann den Kopierten Code nicht analysieren. Ihm ist nicht klar, dass er die Zeile mit der Konvertieurng komplett wegschmeißen kann, weil er keine Konvertierung mehr in String brauch, er hat den Quelltext bereits in einem String.

    VB.NET-Quellcode

    1. Dim wc As New WebClient
    2. Try
    3. wc.Encoding = System.Text.Encoding.Default
    4. wc.Headers.Add("Content-Type", "binary/octet-stream")
    5. Dim result As Byte() = wc.UploadFile(server & "/upload.php?d=" & uploaddir, "POST", Dateipfad)
    6. Dim s As String = System.Text.Encoding.UTF8.GetString(result, 0, result.Length)
    7. ' Die echo's die im PHP ausgegeben werden, werden hier in einer MsgBox angezeigt.
    8. MessageBox.Show(s)
    9. Catch ex As Exception
    10. MessageBox.Show(ex.Message)
    11. End Try


    das ist das tutorial von Rinecamo
    fällt dir was auf?

    Dim result As Byte() = wc.UploadFile
    Was fällt dir auf?? Der TE möchte einen STRING Hochladen, nutzt also die Methode UploadString() (was auch völlig richtig dafür ist) das würde dir auffallen wenn du mal den Code vom TE ansehen würdest.

    Edit: Um Uploadfile() zu benutzen müsste der TE erst den Text auf der Festplatte zwischenspeichern und dann Uploaden, was völlig Sinnfrei ist, wenn es bereits eine Methode für UploadString gibt.