Per API Bild hochladen?

  • VB.NET
  • .NET (FX) 4.0

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

    Per API Bild hochladen?

    Hallo zusammen!

    Ich habe heute eine wichtige Frage,
    denn ich versuch jetzt schon seit wenigen Tagen,
    ein Bild Upload via API zu erstellen.

    Ich habe ein Code von Imgur gefunden, dass auch super klappt.
    Nun möchte ich aber, dass man das auch mit meinem Bild Hosting machen kann.

    Hier ein paar Infos:
    API URL zum hochladen eines Bildes:
    http://webseite.de/api/1/upload/?key=#KEY#&source=#BASE64-CODE#&format=txt

    Außerdem muss es alles über die POST Method laufen.

    Hier der aktuelle Code von Imgur:

    Quellcode

    1. Dim ClientId As String = "18931b2a8a62667"
    2. Public Function UploadImage(ByVal image As String)
    3. Dim w As New WebClient()
    4. w.Headers.Add("Authorization", "Client-ID " & ClientId)
    5. Dim Keys As New System.Collections.Specialized.NameValueCollection
    6. Try
    7. Keys.Add("image", Convert.ToBase64String(File.ReadAllBytes(image)))
    8. Dim responseArray As Byte() = w.UploadValues("https://api.imgur.com/3/image", Keys)
    9. Dim result = Encoding.ASCII.GetString(responseArray)
    10. Dim reg As New System.Text.RegularExpressions.Regex("link"":""(.*?)""")
    11. Dim match As RegularExpressions.Match = reg.Match(result)
    12. Dim url As String = match.ToString.Replace("link"":""", "").Replace("""", "").Replace("\/", "/")
    13. Return url
    14. Catch s As Exception
    15. MessageBox.Show("Something went wrong. " & s.Message)
    16. Return "Failed!"
    17. End Try
    18. End Function


    Für eine bessere Übersicht: pastebin.com/aBXQqXPY


    Ich hoffe ihr könnt mir dabei helfen :(

    Liebe Grüße,
    Kevin O.

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

    Moin,

    schalte zuerst mal Option Strict auf On.

    Grüße
    #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 :!:
    GET ist nur Begrenzt Lange, kann sein, dass der Base64 String bereits das Limit von GET Erreicht und Somit nicht Korekt ist.

    API URL zum hochladen eines Bildes: webseite.de/api/1/upload/?key=…=#BASE64-CODE#&format=txt

    Außerdem muss es alles über die POST Method laufen.


    ?? der Link ist GET
    Leider bin ich noch Einsteiger und weiß noch nicht so recht was ihr meint :(
    Hab gedacht den Code könnte man nur alles kurz bearbeiten, sodass es auch mit meiner Seite funktioniert.

    Wenn ich etwas falsch verstanden habe, sagt mir bitte bescheid.

    LG

    kellnersun schrieb:

    Für eine bessere Übersicht

    Kannst du auch den vb.net BB-Code [vbnet]Code[/vbnet] benutzen.

    VB.NET-Quellcode

    1. Dim ClientId As String = "18931b2a8a62667"
    2. Public Function UploadImage(ByVal image As String)
    3. Dim w As New WebClient()
    4. w.Headers.Add("Authorization", "Client-ID " & ClientId)
    5. Dim Keys As New System.Collections.Specialized.NameValueCollection
    6. Try
    7. Keys.Add("image", Convert.ToBase64String(File.ReadAllBytes(image)))
    8. Dim responseArray As Byte() = w.UploadValues("https://api.imgur.com/3/image", Keys)
    9. Dim result = Encoding.ASCII.GetString(responseArray)
    10. Dim reg As New System.Text.RegularExpressions.Regex("link"":""(.*?)""")
    11. Dim match As RegularExpressions.Match = reg.Match(result)
    12. Dim url As String = match.ToString.Replace("link"":""", "").Replace("""", "").Replace("\/", "/")
    13. Return url
    14. Catch s As Exception
    15. MessageBox.Show("Something went wrong. " & s.Message)
    16. Return "Failed!"
    17. End Try
    18. End Function


    ~mfg Dokta

    Dokta schrieb:

    kellnersun schrieb:

    Für eine bessere Übersicht

    Kannst du auch den vb.net BB-Code [vbnet]Code[/vbnet] benutzen.

    VB.NET-Quellcode

    1. Dim ClientId As String = "18931b2a8a62667"
    2. Public Function UploadImage(ByVal image As String)
    3. Dim w As New WebClient()
    4. w.Headers.Add("Authorization", "Client-ID " & ClientId)
    5. Dim Keys As New System.Collections.Specialized.NameValueCollection
    6. Try
    7. Keys.Add("image", Convert.ToBase64String(File.ReadAllBytes(image)))
    8. Dim responseArray As Byte() = w.UploadValues("https://api.imgur.com/3/image", Keys)
    9. Dim result = Encoding.ASCII.GetString(responseArray)
    10. Dim reg As New System.Text.RegularExpressions.Regex("link"":""(.*?)""")
    11. Dim match As RegularExpressions.Match = reg.Match(result)
    12. Dim url As String = match.ToString.Replace("link"":""", "").Replace("""", "").Replace("\/", "/")
    13. Return url
    14. Catch s As Exception
    15. MessageBox.Show("Something went wrong. " & s.Message)
    16. Return "Failed!"
    17. End Try
    18. End Function


    ~mfg Dokta


    Alles klar :D
    Danke für die Info!
    Ich weiß nicht ob ihr es gelesen habt,
    aber ich möchte den ganzen Code so umschreiben,
    dass er mit meiner Seite funktioniert und nicht mit imgur.

    Dazu bin ich noch komplett Anfänger und würde mich freuen (auch wenn es nicht oft gewünscht ist),
    dass mir vielleicht irgendjemand das so umschreiben kann :/

    LG
    Das was du da vorhast ist nicht Clientseitig. Das vorweg. Du musst den Server korrekt konfigurieren, du musst
    das PHP-Backend machen, damit das Bild auf dem Server landet. Du brauchst ResponseStates. Mit deinem Wissen geht das nicht,
    außer, du copy-pastest alles.

    Grüße
    "Life isn't about winning the race. Life is about finishing the race and how many people we can help finish the race." ~Marc Mero

    Nun bin ich also auch soweit: Keine VB-Fragen per PM! Es gibt hier ein Forum, verdammt!