Datei hochladen

  • VB.NET

Es gibt 14 Antworten in diesem Thema. Der letzte Beitrag () ist von mottzi.

    Datei hochladen

    Guten Tag

    Ich möchte eine einfache Datei hochladen, jedoch sagt er mir, dass er die datei nicht findet.

    VB.NET-Quellcode

    1. Try
    2. Dim iFile As Stream = IO.File.Create(My.Computer.FileSystem.SpecialDirectories.MyDocuments & "/" & TextBox2.Text & ".ini")
    3. iFile.Close()
    4. AddHandler client.UploadFileCompleted, AddressOf UploadedUserAkte
    5. client.UploadFile(url2, My.Computer.FileSystem.SpecialDirectories.MyDocuments & "/" & TextBox2.Text & ".ini") 'Fehler findet die Datei nicht
    6. Catch ex2 As Exception
    7. MsgBox("Fehler beim erstellen der Userakte" & vbNewLine & vbNewLine & "Bitte überprüfen sie ihre Internetverbindung!" & vbNewLine & vbNewLine & ex2.ToString, vbOK + vbCritical, "Fehler")
    8. End Try


    Liebe Grüße
    wie ist der Inhalt von "url2" ?
    Lass dir mal deinen Pfad ausgeben und mach evtl. ein If IO.File.Exists() darein.
    Bei Windows werden Pfade mit "\" getrennt. Benutz lieber IO.Path.Combine(Pfad1, Pfad2, Pfad3) (IO.Path.Combine(Dokumente, Testbox2.Text & ".ini"))
    So das gesammte:

    VB.NET-Quellcode

    1. Private Sub Button3_Click(sender As System.Object, e As System.EventArgs) Handles Button3.Click
    2. Dim url1 As Uri = New Uri("http://www.mpckeybinder.co.de/User Akten/Akten/" & TextBox2.Text & ".ini")
    3. Dim url2 As Uri = New Uri("http://www.mpckeybinder.co.de/User Akten/Akten/")
    4. Try
    5. client.OpenRead(url1)
    6. MsgBox("Dieser User hat bereits eine Akte!", vbOK + vbInformation, "Fehler")
    7. Catch ex As Exception
    8. Try
    9. Dim pfad As String = IO.Path.Combine(My.Computer.FileSystem.SpecialDirectories.MyDocuments, TextBox2.Text & ".ini")
    10. Dim iFile As Stream = IO.File.Create(pfad)
    11. iFile.Close()
    12. AddHandler client.UploadFileCompleted, AddressOf UploadedUserAkte
    13. client.UploadFile(url2, pfad) 'Fehler findet die Datei nicht
    14. Catch ex2 As Exception
    15. MsgBox("Fehler beim erstellen der Userakte" & vbNewLine & vbNewLine & "Bitte überprüfen sie ihre Internetverbindung!" & vbNewLine & vbNewLine & ex2.ToString, vbOK + vbCritical, "Fehler")
    16. End Try
    17. End Try
    18. End Sub
    19. Private Sub UploadedUserAkte()
    20. MsgBox("Userakte '" & TextBox2.Text & "' wurde erfolgreich erstellt!", vbInformation + vbOK, "Userakte erstellt")
    21. End Sub

    furzbacke77 schrieb:

    So das gesammte:

    VB.NET-Quellcode

    1. MsgBox("Userakte '" & TextBox2.Text & "' wurde erfolgreich erstellt!", vbInformation + vbOK, "Userakte erstellt")


    Sry krieg ich augenkrebs bei.. >> STRICT ON <<

    ...

    VB.NET-Quellcode

    1. MsgBox("Userakte wurde erfolgreich erstellt!", MsgBoxStyle.Information Or MsgBoxStyle.OkOnly, "Userakte erstellt")
    2. Dim pfad As String = Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments) & "\" & textbox2.Text.ToString & ".ini"


    zu deinem Problem.. bevor du die datei hochladen willst, lass dir den pfad in eine messagebox anzeigen...

    VB.NET-Quellcode

    1. MsgBox (url2)
    2. MsgBox(pfad)
    3. client.UploadFile(url2, pfad) 'Fehler findet die Datei nicht


    dann kannst du sehen, ob dort überhaupt was vorhanden ist...
    ansonsten denk an das Format, setz hinter pfad ein ".toString"

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

    möp. In einen Ordner kann nicht hochgeladen werden.
    Benutz "url1".
    Außerdem kannst du nur über das FTP (File Transfer Protocol) eine Datei hochladen.
    Über das HTTP (Hypertext Transfer Protocol) kannst du das nicht (mit Ausnahme von POST Paramertern)

    Für dich:
    benutz das FTP Protokoll, du musst dadurch Benutzername und Passwort angeben -> Unsicht
    nutze lieber: [VB 2010] PHP Upload
    Ist gleich viel sicherer :P

    und Annoxolis' Option Strict On (erklärt: home.arcor.de/eckardahlers/Pro…/Blogs/WarumStrictOn.html )
    ich habe es nun mit der PHP Methode probiert. Jedoch lädt er die datei nicht hoch.

    hier mein Code und die MsgBox die ausgegeben wird:

    VB.NET-Quellcode

    1. Private Sub Button3_Click(sender As System.Object, e As System.EventArgs) Handles Button3.Click
    2. Dim url1 As Uri = New Uri("http://www.mpckeybinder.co.de/User Akten/Akten/" & TextBox2.Text & ".ini")
    3. Dim url2 As String = "http://www.mpckeybinder.co.de/User Akten/Akten"
    4. Try
    5. client.OpenRead(url1)
    6. MsgBox("Dieser User hat bereits eine Akte!", CType(vbOK + vbInformation, MsgBoxStyle), "Fehler")
    7. Catch ex As Exception
    8. Try
    9. Dim pfad As String = IO.Path.Combine(My.Computer.FileSystem.SpecialDirectories.MyDocuments, TextBox2.Text & ".ini")
    10. Dim iFile As Stream = IO.File.Create(pfad.ToString)
    11. iFile.Close()
    12. Dim result As Byte() = client.UploadFile("http://www.mpckeybinder.co.de" & "/upload.php?d=" & url2, "POST", pfad.ToString)
    13. Dim s As String = System.Text.Encoding.UTF8.GetString(result, 0, result.Length)
    14. MessageBox.Show(s)
    15. Catch ex2 As Exception
    16. MsgBox("Fehler beim erstellen der Userakte" & vbNewLine & vbNewLine & "Bitte überprüfen sie ihre Internetverbindung!" & vbNewLine & vbNewLine & ex2.ToString, CType(vbOK + vbCritical, MsgBoxStyle), "Fehler")
    17. End Try
    18. End Try
    19. End Sub


    Dein Hoster unterstützt kein Datei Upload per PHP.
    Dann hast du das noch gekonnt ignoriert:

    VB.NET-Quellcode

    1. wc.Encoding = System.Text.Encoding.Default
    2. wc.Headers.Add("Content-Type", "binary/octet-stream")

    Das muss natürlich mit rein.
    Frag bei deinem Hoster mal nach ob PHP Upload aktiviert ist.
    ähm hallo ? ich gebe dir die RICHTIGE lösung für deine messagebox und jetzt machst du es so ?

    VB.NET-Quellcode

    1. MsgBox("Dieser User hat bereits eine Akte!", CType(vbOK + vbInformation, MsgBoxStyle), "Fehler")


    :thumbdown:

    Richtig:

    VB.NET-Quellcode

    1. MsgBox("Dieser User hat bereits eine Akte!",MsgBoxStyle.Information Or MsgBoxStyle.OkOnly,"Fehler")


    OR darfst du hier nicht wörtlich nehmen! der wählt das sicherlich nicht via zufall aus ob er nur "OK oder nur das design "Info" angibt ^^
    aber an der schreibweise deines codes..
    mom schaus mir eben nochmal an wegen dem hochladen.. -> Tee holen ^^

    //Edit
    So..
    Du lädst die datei wie hoch..? Vermute mal via FTP ?
    oder steckt da irgendein system hinter ?

    hast du das gemacht bezüglich des pfads was ich dir gesagt habe ? das du die vor dem upload einmal in einer messagebox ausgibst ?
    wenn ja, hast du darin den von dir gewünschten pfad gehabt oder gar nichts ?

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

    Ich habe den richtigen Pfad gehabt. Ich habe die PHP methode genommen. Ich habe das PHP script erstellt und auf den Server geladen. nun gebe ich wie in seinem Tutorial die Pfade an und er gibt mir auch eine nachricht (siehe Bild). Jedoch ist die datei nicht oben und aus der MessageBox werde ich auch nicht schlau. Wo muss ich denn die FTP daten angeben? laut dem PHP tutorial wird nichts vom FTP gesagt :o
    naja sry.. mit php setze ich mich gerade auseinander :D da kann ich dir frühestens in 1 - 3 wochen was sagen ^^
    aber ich denke mal bis dahin wird hier jemand was geschrieben haben..

    naja wie willst du bitte daten ohne FTP hochladen ? auser du hast eine server.exe etc. die sowas akzeptiert
    da gibt es (meines wissens nach) nur die FTP methode

    schau mal hier im forum, gibs genügend beispiele für

    VB.NET-Quellcode

    1. Dim web As New Net.WebClient
    2. web.Credentials = New Net.NetworkCredential("Benutzer", "Passwort")
    3. web.UploadFile("ftp://lol.de/DateiPfad+Endung hier", "Dateipfad auf Computer hier")
    "I think Microsoft has abused the Windows brand so much that it has lost its cachet."
    Paul Thurrott