Dateien auf Webserver laden

  • VB.NET
  • .NET (FX) 4.0

Es gibt 28 Antworten in diesem Thema. Der letzte Beitrag () ist von justti96.

    Dateien auf Webserver laden

    Hey Leute,
    ich sitze jetzt hier schon eine ganze Weile daran eine Textdatei auf einen Webserber zu laden.
    Allerdings wirft mein Code folgenden Fehler: Der Remoteserver hat einen Fehler zurückgegeben: (407) Proxyauthentifizierung erforderlich.


    Mein Code:

    VB.NET-Quellcode

    1. Public Class Ftp
    2. Shared Function Upload(ByVal lblOutput)
    3. Dim Korrekt As Boolean = True
    4. Dim username As String = "****"
    5. Dim pass As String = "*******"
    6. Dim local As String = "datei.txt"
    7. Dim local2 As String = "Z:\Documents\Visual Studio 2010\Projects\ServerUpload\ServerUpload\bin\Debug\datei.txt"
    8. Dim server As String = "ftp://namp.it-lehrfirma.de/zeiterfassung/datei.txt"
    9. Try
    10. ' My.Computer.FileSystem.WriteAllText("datei.txt", lblOutput, True)
    11. My.Computer.Network.DownloadFile(server, local2, username, pass)
    12. 'My.Computer.Network.UploadFile(local, server, username, pass)
    13. Catch ex As Exception
    14. Korrekt = False
    15. End Try
    16. Return Korrekt
    17. End Function
    18. End Class


    Vielleicht könnt ihr mir ja Zeitnah helfen
    Es steht doch alles in der Meldung. Du musst deine Proxy authentifizieren. Das ist nix mit dem Code.
    Schreib das Passwort übrigens KEINESFALLS im Klartext in den Code und verwende für das Downloaden lieber einen WebClient.
    #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 :!:
    #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 :!:
    Ist zwar nicht direkt mein Gebiet, aber..

    "My.Computer.Network.DownloadFile(server, local2, username, pass)"

    klingt mir falsch, wenn du Dateien AUF dem SERVER laden willst.

    ich persönlich würde da eher

    "My.Computer.Network.UploadFile(server, local2, username, pass)"

    nehmen.
    Vielleicht hilft das ja schon :)
    Schapp Dir nen HttpWebRequest und ne IWebProxy, dann setz die Proxy.Credentials auf Default und das sollte es gewesen sein.
    #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 :!:
    Ähm ja stimmt schon.
    Ich hatte beim Upload aber genau die gleiche Meldung. ;)


    ok Danke
    ich versuchs mal


    Hab grad mal geguckt und ein paar Artikel gefunden aber die benutzen das alles ein wenig anders als ich es brauch.
    Kannst du mir ein Beispiel geben wie es aussehen könnte?
    Ich hab davon leider nicht eirklich viel Ahnung.

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

    Die DefaultCredentials sollten im Normalfall ausreichen.
    #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 :!:
    Das ist das zugehörige Interface. Das schreibt nur vor, dass Dein lokales Feld/Deine Variable für nen WebProxy, insofern man eins deklariert, von einem Typ sein muss, der dieses Interface implementiert.
    #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 :!:
    Nein, keine Sub. Gar nichts, Du musst das nicht mal unbedingt verwenden, das geht auch direkt, wenn Du nen WebProxy deklarierst.
    #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 :!:
    Ok
    Hab das grad mal getestet und jetzt sagt er mir: Der Objektverweis wurde nicht auf eine Objektinstanz festgelegt.

    Code:

    VB.NET-Quellcode

    1. Imports System.Net
    2. Public Class Ftp
    3. Shared Function Upload(ByVal lblOutput)
    4. Dim Korrekt As Boolean = True
    5. Dim username As String = "******"
    6. Dim pass As String = "********"
    7. Dim local As String = "datei.txt"
    8. Dim local2 As String = "Z:\Documents\Visual Studio 2010\Projects\ServerUpload\ServerUpload\bin\Debug\datei.txt"
    9. Dim server As String = "ftp://namp.it-lehrfirma.de/zeiterfassung/datei.txt"
    10. Dim Request As HttpWebRequest
    11. Request.Credentials = CredentialCache.DefaultCredentials
    12. Try
    13. ' My.Computer.FileSystem.WriteAllText("datei.txt", lblOutput, True)
    14. 'My.Computer.Network.DownloadFile(server, local2, username, pass)
    15. My.Computer.Network.UploadFile(local, server, username, pass)
    16. Catch ex As Exception
    17. Korrekt = False
    18. End Try
    19. Return Korrekt
    20. End Function
    21. End Class


    Muss ich dem Objekt nich no irgendwo Werte zuwesen?
    Normal bitte immer Zeile angeben. Ja, wo instanziierst/weißt Du dem HttpWebRequest denn was zu? Richtig, nirgends, also, dann mach das.
    WebRequest.Create("URL")
    #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 :!:
    Nö, denn Der HttpWebRequest hat ja keine Instanz, sodass er da bei den Credentials failt. Probiere es halt einfach aus, kann ja nix schiefgehen ;)
    #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 :!:
    Komisch, schau mal bitte nach, was da ​Nothing ist. Das machst Du, indem Du die Ausnahme fliegen lässt und anschließend über die einzelnen Teile drüber hoverst mit der Maus.
    #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 :!: