Senden von Datei an Upload-Dienst, Parameter- und Datenübergabe

  • VB.NET

Es gibt 9 Antworten in diesem Thema. Der letzte Beitrag () ist von aurevo.

    Senden von Datei an Upload-Dienst, Parameter- und Datenübergabe

    Ich möchte in diesem Fall eine Billdatei an einen Onlinedienst senden.

    Dazu habe ich bis jetzt auf die folgende Library zurückgegriffen, wollte davon aber eigentlich loskommen: [Version 4.1] HttpPostRequestLib

    Da nur ein Parameter und die Datei übergeben werden muss ging das alles relativ einfach in diesem Beispiel:

    VB.NET-Quellcode

    1. Dim Sourcecode As String = String.Empty
    2. reg = New HTTPPostRequest("http://www.directupload.net/index.php")
    3. Try
    4. reg.Post.Add("mode", "upload")
    5. reg.Files.Add("bilddatei", "C:\Jellyfish.jpg")
    6. Sourcecode = reg.Submit()
    7. Catch ex As Exception
    8. MessageBox.Show(ex.Message)
    9. End Try


    Wie aber schreibe ich das jetzt um um das zum Beispiel mit einem httpClient oder einem WebClient zu erledigen, bzw ist das überhaupt möglich?

    Wie sende ich da die Parameter mit und gleichzeitig die Datei?

    VB.NET-Quellcode

    1. // Nicht getestet
    2. Dim uriString As String = "http://www.directupload.net/index.php"
    3. Dim myWebClient As New WebClient()
    4. Dim fileName As String = "C:\Jellyfish.jpg"
    5. Dim responseArray As Byte() = myWebClient.UploadFile(uriString, fileName)
    6. MessageBox.Show(System.Text.Encoding.ASCII.GetString(responseArray))
    Meine Software findet ihr HIER, bin in Android und Windows entwicklung aktiv.

    Falls ihr meine begehrte Movie Box für Android haben wollt, diese findet ihr auch auf meiner Website oder hier direkt download.

    tarkelasgang schrieb:

    VB.NET-Quellcode

    1. // Nicht getestet
    2. Dim uriString As String = "http://www.directupload.net/index.php"
    3. Dim myWebClient As New WebClient()
    4. Dim fileName As String = "C:\Jellyfish.jpg"
    5. Dim responseArray As Byte() = myWebClient.UploadFile(uriString, fileName)
    6. MessageBox.Show(System.Text.Encoding.ASCII.GetString(responseArray))


    Das funktioniert so nicht, hatte ich ganz ähnlich auch schon probiert, da fehlt aber auch die Übergabe von "mode=upload" und dass das Bild als "bilddatei" übergeben wird.
    @TVX Du solltest noch hinschreiben, dass das Passwort aus einer Eingabe bezogen werden und NIE im Code stehen sollte. ;)
    #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 :!:
    Meinst du so in der Art ?

    VB.NET-Quellcode

    1. Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
    2. Using UploadWebClient As New Net.WebClient
    3. Dim reqparm As New Specialized.NameValueCollection
    4. reqparm.Add("input", "url")
    5. reqparm.Add("image_link", "C:\Users\zeus\Desktop\Neuer Ordner (6)\IMG_1577.JPG")
    6. Dim responsebytes = UploadWebClient.UploadValues("http://www.directupload.net/index.php?mode=upload", "POST", reqparm)
    7. Dim responsebody = (New System.Text.UTF8Encoding).GetString(responsebytes)
    8. End Using
    9. End Sub



    Dieser Beitrag wurde bereits 3 mal editiert, zuletzt von „TVX“ ()

    TVX schrieb:

    Meinst du so in der Art ?

    VB.NET-Quellcode

    1. Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
    2. Using UploadWebClient As New Net.WebClient
    3. Dim reqparm As New Specialized.NameValueCollection
    4. reqparm.Add("input", "url")
    5. reqparm.Add("image_link", "C:\Users\zeus\Desktop\Neuer Ordner (6)\IMG_1577.JPG")
    6. Dim responsebytes = UploadWebClient.UploadValues("http://www.directupload.net/index.php?mode=upload", "POST", reqparm)
    7. Dim responsebody = (New System.Text.UTF8Encoding).GetString(responsebytes)
    8. End Using
    9. End Sub



    Ich habe es jetzt gerade auf diese beiden Arten versucht:

    VB.NET-Quellcode

    1. Using UploadWebClient As New WebClient
    2. Dim reqparm As New Specialized.NameValueCollection
    3. reqparm.Add("input", "url")
    4. reqparm.Add("bilddatei", "C:\Jellyfish.jpg")
    5. Dim responsebytes = UploadWebClient.UploadValues("http://www.directupload.net/index.php?mode=upload", "POST", reqparm)
    6. Dim responsebody = (New System.Text.UTF8Encoding).GetString(responsebytes)
    7. End Using


    und

    VB.NET-Quellcode

    1. ​Using UploadWebClient As New Net.WebClient
    2. Dim reqparm As New Specialized.NameValueCollection
    3. reqparm.Add("mode", "upload")
    4. reqparm.Add("bilddatei", "C:\Jellyfish.jpg")
    5. Dim responsebytes = UploadWebClient.UploadValues("http://www.directupload.net/index.php", "POST", reqparm)
    6. Dim responsebody = (New System.Text.UTF8Encoding).GetString(responsebytes)
    7. End Using


    Funktioniert beides nicht, ich denke da fehlt die korrekte Angabe für die Mitgabe der Datei. Die wird vermutlich anders weitergegeben als ein normaler Parameter wie zum Beispiel der Filename etc.