tutorials.de Buch-Aktion 02/2012
ERLEDIGT
JA
ANTWORTEN
7
ZUGRIFFE
15871
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    bleifresser bleifresser ist offline Mitglied Bronze
    Registriert seit
    Feb 2004
    Beiträge
    47
    Hallo,

    ich bin auf dem Gebiet vb.net noch etwas fremd. Ich habe mir ein kleines Programm gebaut, dass eine txt Datei auf einen festen FTP Server hochladen soll.
    Der FTP Server ist mit Nutzername und Passwort geschützt.
    Ich habe einige Lösungen im Netz gefunden, jedoch funktioniert bei mir keine. Deshalb poste ich hier mal den Code und hoffe auf eure kompetente Hilfe.

    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    
    Public Sub connectFTP()
            Dim status As Boolean = False
            Dim myURI As String = "ftp://999.999.999.999"
     
            Dim requestStream As Stream = Nothing
            Dim fileStream As FileStream = Nothing
            Dim uploadResponse As FtpWebResponse = Nothing
            Dim ftpwr As FtpWebRequest = FtpWebRequest.Create(myURI)
            ftpwr.Method = WebRequestMethods.Ftp.UploadFile
            ftpwr.Credentials = New NetworkCredential("nutzer", "passwort")
            ftpwr.Proxy = Nothing
     
            requestStream = ftpwr.GetRequestStream()
            fileStream = File.Open("C:\output.txt", FileMode.Open)
     
            Dim buffer(1024) As Byte
            Dim bytesRead As Integer
     
            While True
                bytesRead = fileStream.Read(buffer, 0, buffer.Length)
                If bytesRead = 0 Then
                    Exit While
                End If
            End While
     
           requestStream.Close()
     
            uploadResponse = ftpwr.GetResponse()
     
        End Sub
    Die Serveradresse und die Zugangsdaten habe ich verändert. Ich bekomme die Meldung:
    "Der angeforderte URI ist für diesen FTP-Befehl ungültig."

    Ist wohl ein Denkfehler von mir, komm aber nicht drauf.

    MfG Frank
     

  2. #2
    Avatar von Norbert Eder
    Norbert Eder Norbert Eder ist offline Mitglied Diamant
    Registriert seit
    Feb 2004
    Ort
    Österreich / Graz
    Beiträge
    5.137
    Blog-Einträge
    51
    Also so sollte das durchaus funktionieren:
    Code :
    1
    2
    3
    
    Dim req As WebRequest = FtpWebRequest.Create("ftp://01.test.com")
    req.Credentials = New NetworkCredential("username", "password")
    Dim requestStream As Stream = req.GetRequestStream()

    Entsprechend der Fehlermeldung passt deine URI nicht, sprich die Adresse zu der du dich verbinden willst.

    Des weiteren nutzt du den RequestStream nicht. Du schreibst da keine Daten hinein
     

  3. #3
    bleifresser bleifresser ist offline Mitglied Bronze
    Registriert seit
    Feb 2004
    Beiträge
    47
    Hi,

    danke für deine Antwort, ich bin jedoch noch nicht weiter gekommen. Ich habe mir nochmals den Code einer Beispielklasse von Microsoft vorgenommen und mir einen FTP lokal auf meinem Rechner eingrichtet, es geht trotzdem nicht.

    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    
    Public Sub Upload(ByVal fileName As String, ByVal uploadUrl As String)
            Dim requestStream As Stream = Nothing
            Dim fileStream As FileStream = Nothing
            Dim uploadResponse As FtpWebResponse = Nothing
            Try
                Dim uploadRequest As FtpWebRequest = WebRequest.Create(uploadUrl)
                uploadRequest.Method = WebRequestMethods.Ftp.UploadFile
                uploadRequest.Credentials = New NetworkCredential("test", "test")
     
                ' UploadFile is not supported through an Http proxy
                ' so we disable the proxy for this request.
                uploadRequest.Proxy = Nothing
     
                requestStream = uploadRequest.GetRequestStream()
                fileStream = File.Open(fileName, FileMode.Open)
     
                Dim buffer(1024) As Byte
                Dim bytesRead As Integer
                While True
                    bytesRead = fileStream.Read(buffer, 0, buffer.Length)
                    If bytesRead = 0 Then
                        Exit While
                    End If
                    requestStream.Write(buffer, 0, bytesRead)
                End While
     
                ' The request stream must be closed before getting the response.
                requestStream.Close()
     
                uploadResponse = uploadRequest.GetResponse()
                Console.WriteLine("Upload complete.")
            Catch ex As UriFormatException
                Console.WriteLine(ex.Message)
            Catch ex As IOException
                Console.WriteLine(ex.Message)
            Catch ex As WebException
                Console.WriteLine(ex.Message)
            Finally
                If uploadResponse IsNot Nothing Then
                    uploadResponse.Close()
                End If
                If fileStream IsNot Nothing Then
                    fileStream.Close()
                End If
                If requestStream IsNot Nothing Then
                    requestStream.Close()
                End If
            End Try
        End Sub

    Fehler:

    Der angeforderte URI ist für diesen FTP-Befehl ungültig.
    System.Net.FtpWebResponse
    [...]
    Eine Ausnahme (erste Chance) des Typs "System.Net.WebException" ist in System.dll aufgetreten.

    Funktionsaufruf: ftpVerbindung.Upload("C:\output.txt", "ftp://127.0.0.1"). Den User Test mit dem selbigen Passwort gibt es auf meinem FTP und er darf in seinem Verzeichnis auch schreiben.

    Der FTP gibt mir folgende Meldung:

    Code :
    1
    2
    3
    4
    5
    
    (000006) 29.03.2007 08:05:24 - (not logged in) (127.0.0.1)> Connected, sending welcome message...
    (000006) 29.03.2007 08:05:24 - (not logged in) (127.0.0.1)> 220-FileZilla Server version 0.9.20 beta
    (000006) 29.03.2007 08:05:24 - (not logged in) (127.0.0.1)> 220-written by Tim Kosse (Tim.Kosse@gmx.de)
    (000006) 29.03.2007 08:05:24 - (not logged in) (127.0.0.1)> 220 Please visit http://sourceforge.net/projects/filezilla/
    (000006) 29.03.2007 08:05:24 - (not logged in) (127.0.0.1)> disconnected.
    Geändert von bleifresser (29.03.07 um 08:11 Uhr)
     

  4. #4
    bleifresser bleifresser ist offline Mitglied Bronze
    Registriert seit
    Feb 2004
    Beiträge
    47
    Erfolg

    Ich meinen Fehler gefund, ich hatte den Dateinamen auf dem Server nicht mit angegeben.
    Nun habe ich folgende URI: ftp://test:test@127.0.0.1/test.txt.
     

  5. #5
    Maxro Maxro ist offline Mitglied Bronze
    Registriert seit
    Jul 2007
    Beiträge
    42
    Zitat Zitat von bleifresser Beitrag anzeigen

    Fehler:

    Der angeforderte URI ist für diesen FTP-Befehl ungültig.
    hmmm ich bekomme leider diese fehlermeldung bei mir auch , allerdings weiß ich nicht was ich machen soll , hatte vllt jemand eien Idee wie cih das problem beheben kann..?

     

  6. #6
    Avatar von Norbert Eder
    Norbert Eder Norbert Eder ist offline Mitglied Diamant
    Registriert seit
    Feb 2004
    Ort
    Österreich / Graz
    Beiträge
    5.137
    Blog-Einträge
    51
    Sieh dir die URI an, sehr wahrscheinlich ist diese nicht korrekt.
     

  7. #7
    Maxro Maxro ist offline Mitglied Bronze
    Registriert seit
    Jul 2007
    Beiträge
    42
    hmm...

    welches Format muss die URL den haben..?

     

  8. #8
    graycode graycode ist offline Rookie
    Registriert seit
    May 2010
    Beiträge
    7
    Danke,
    die Seiten haben mir geholfen
    Gruß
     

Ähnliche Themen

  1. Dateiupload
    Von Matthias Reitinger im Forum vB-Testforum
    Antworten: 2
    Letzter Beitrag: 23.06.06, 11:09
  2. Dateiupload mit PHP
    Von Grunge im Forum PHP
    Antworten: 14
    Letzter Beitrag: 30.04.06, 15:32
  3. Dateiupload mit GET?
    Von SXrunner im Forum PHP
    Antworten: 2
    Letzter Beitrag: 09.03.05, 18:16
  4. Dateiupload
    Von Seven Secrets im Forum PHP
    Antworten: 7
    Letzter Beitrag: 03.10.03, 15:06
  5. VB5 Dateiupload an PHP
    Von sonline im Forum Visual Basic 6.0
    Antworten: 4
    Letzter Beitrag: 22.08.03, 17:30