FTP Datei Downloaden - Bearbeiten - Uploaden

  • VB.NET
  • .NET (FX) 4.5–4.8

Es gibt 8 Antworten in diesem Thema. Der letzte Beitrag () ist von PlatinSecurity.

    FTP Datei Downloaden - Bearbeiten - Uploaden

    Hallo zusammen,

    ich stehe aktuell vor ein Problem das eigentlich nicht sein dürfte.
    Ich möchte eine Datei von meinem FTP Server Downloaden.
    Diese Datei soll dann bearbeitet werden und wieder hochgeladen werden.

    Ingrundegenommen sollte es ja wie gesagt funktionieren.
    Es wird nur jedes mal der Fehler (550) ausgegeben, der bedeutet dass die Datei nicht gefunden wurde
    oder keine Berechtigung hat. Das ist allerdings komisch, da es die Datei auf dem Server ja gibt und diese hat auch alle Rechte. (0777)
    Und was noch zu sagen ist, dass die Datei vom Namen in dem Ordner den ich auf dem Computer habe erstellt wird aber nur als leere Datei.

    Mein Code:

    VB.NET-Quellcode

    1. If System.IO.Directory.Exists("c:\test") = False Then
    2. System.IO.Directory.CreateDirectory("c:\test")
    3. End If
    4. 'Download Start
    5. My.Computer.Network.DownloadFile("ftp://SERVER/pfad/aktuell.txt", "C:\test\aktuell.txt", My.Settings.ftp_username, My.Settings.ftp_password) 'Hier hat er direkt schon ein Problem...Nur wird eben die Datei vom Namen "aktuell.txt" erstellt aber leer. Angeblich keine Rechte oder nicht vorhanden.
    6. My.Computer.Network.DownloadFile("ftp://SERVER/pfad/change.txt", "C:\test\change.txt", My.Settings.ftp_username, My.Settings.ftp_password)
    7. My.Computer.Network.DownloadFile("ftp://SERVER/pfad/von.txt", "C:\test\von.txt", My.Settings.ftp_username, My.Settings.ftp_password)
    8. 'Download Ende
    9. Dim tag_jetzt As String = Date.Now.Day
    10. Dim monat_jetzt As String = Date.Now.Month
    11. Dim jahr_jetzt As String = Date.Now.Year
    12. Dim stunde_jetzt As String = Date.Now.Hour
    13. Dim minute_jetzt As String = Date.Now.Minute
    14. Dim datum_format As String = tag_jetzt & "." & monat_jetzt & "." & jahr_jetzt
    15. Dim uhr_format As String = stunde_jetzt & ":" & minute_jetzt
    16. My.Computer.FileSystem.WriteAllText("C:\test\aktuell.txt", "test", False)
    17. My.Computer.FileSystem.WriteAllText("C:\test\change.txt", "am " & datum_format & " um " & uhr_format & " Uhr", False)
    18. My.Computer.FileSystem.WriteAllText("C:\test\von.txt", My.Settings.unadatasafe, False) 'My.Settings.unadatasafe = Username der da eingetragen wird. Bsp.: Mustermann
    19. 'Upload Start
    20. My.Computer.Network.UploadFile("C:\test\aktuell.txt", "ftp://SERVER/pfad/aktuell.txt", My.Settings.ftp_username, My.Settings.ftp_password)
    21. My.Computer.Network.UploadFile("C:\test\change.txt", "ftp://SERVER/pfad/change.txt", My.Settings.ftp_username, My.Settings.ftp_password)
    22. My.Computer.Network.UploadFile("C:\test\von.txt", "ftp://SERVER/pfad/von.txt", My.Settings.ftp_username, My.Settings.ftp_password)
    23. 'Upload Ende
    tja, wenn Fehler 550 bedeutet "Nicht gefunden oder keine Rechte", dann würde ich auch in die Richtung debuggen.

    Als erstes kannst du mal eine Dummi-Datei uploaden, und anschliessend wieder runter.
    Wenn das klappt, noch einen 2. Versuch mit einer leeren Datei - vlt. zickt es ja deswegen rum.
    Damit wären technische Probleme dann wohl ausgeschlossen, und es kann nur noch daran liegen, dass du einen falschen Uri angibst.
    Ich habe es jetzt mehrfach und unterschiedlich versucht es hin zu bekommen.

    Ich habe erst versucht eine Datei mit dem namen test2.txt hoch zu laden mit Inhalt.
    Das hat aber nicht funktioniert. Selbe Fehler. Dann habe ich es versucht ohne Inhalt.
    Hat ebenso nicht funktioniert. Selbe Fehler. Bearbeiten lässt die Datei sich. Aber bei Upload oder eben
    Download kommt der Fehler "Der Remoteserver hat einen Fehler zurückgegeben: (550) Datei nicht verfügbar (z.B. nicht gefunden oder kein Zugriff).".

    Es kann und darf nicht sein.
    Ich habe den Pfad zu der Datei im FTP Kopiert.
    Es ist auch genau der Pfad zu dieser Datei. Ich habe ihn ca. 20x geprüft.
    Genau so wie den Pfad zur Lokalen Datei die bearbeitet wird und wieder hochgeladen werden soll.

    Also wie erwähnt klappt es die Datei zu bearbeiten.
    Aber bevor ich eine Datei bearbeiten kann, will ich ja die FTP Datei downloaden.
    Und erst nach der bearbeitung dieser Datei soll diese wieder hochgeladen werden.

    Nur dieser Fehler macht mich verrückt.
    Die Rechte sind in dem Ordner sowie auf alle Dateien auf =0777= !

    EDIT:
    Ich habe einfach mal hier den Exception Fehler noch mal Kopiert:
    -----
    System.Net.WebException: Der Remoteserver hat einen Fehler zurückgegeben: (550) Datei nicht verfügbar (z.B. nicht gefunden oder kein Zugriff).
    bei System.Net.WebClient.DownloadFile(Uri address, String fileName)
    bei Microsoft.VisualBasic.MyServices.Internal.WebClientCopy.DownloadFile(Uri address, String destinationFileName)
    bei Microsoft.VisualBasic.Devices.Network.DownloadFile(Uri address, String destinationFileName, ICredentials networkCredentials, Boolean showUI, Int32 connectionTimeout, Boolean overwrite, UICancelOption onUserCancel)
    bei Microsoft.VisualBasic.Devices.Network.DownloadFile(String address, String destinationFileName, String userName, String password, Boolean showUI, Int32 connectionTimeout, Boolean overwrite, UICancelOption onUserCancel)
    bei Microsoft.VisualBasic.Devices.Network.DownloadFile(String address, String destinationFileName, String userName, String password)
    bei projekt1.Form1.Button1_Click(Object sender, EventArgs e) in C:\Users\Benjamin\documents\visual studio 2017\Projects\projekt1\projekt1\Form1.vb:Zeile 413.

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

    Gangsterkrafter schrieb:

    Ich glaube er meint

    - Herunterladen -

    Bearbeiten

    - Hochladen -

    lg


    Genau das mein ich :D
    Zitat: "Genau so wie den Pfad zur Lokalen Datei die bearbeitet wird und wieder hochgeladen werden soll"
    Moin zusammen,

    ich habe eine Sache jetzt gelöst.
    Wenn ich die Datei Downloaden will, geht es jetzt.
    Habe es einfach ohne FTP gemacht, da man anscheind eine txt oder was auch immer einfach so runterladen kann mit dem Inhalt.

    Bearbeiten lässt die Datei sich natürlich dann Lokal auch ganz einfach.

    Nur das Hochladen macht mir noch Probleme.
    Der selbe Fehler wie schon oben geschrieben.

    Ich verzweifel solangsam. ;(
    Das du die Datei einfach so herunterladen kannst(vermutlich HTTP(S)) liegt daran das jeder die Berechtigung hat. Du kannst aber mit .htaccess die Datei schuetzen. Ich wuerde eine PHP nutzen um an den String zu kommen, anders herum kannst du mit der PHP den String entgegenehmen und in die Datei eintragen. Natuerlich ueber HTTPS.

    FTP ist veraltet, hoffe du hast FTP ueber TLS genutzt? Sonst kann jeder der deinen Verkehr mit-liest/schneidet auf deinen Webspace zugreifen.
    And i think to myself... what a wonderfuL World!
    Ja läuft über TLS.

    Mit PHP, dass ich die Datei vom Programm an das PHP Script mit einer Datei Upload Form übergebe
    ist mir dann doch zu viel. Oder eben halt nur der String an die PHP und dann absende.
    Möchte es gerne einfach und simpel halten.