ImageHoster Upload

Ryu1991

Erfahrenes Mitglied
Hi Leute, ich wollte nen Programm schreiben, dass Bilder auf diesen Imagehoster Imageshack.us hoch lädt und mir danach den Link zu dem Bild zurückgibt, also den Direktlink.
Ich habe es erst mit so einer Http-Klasse von ChillCat versucht, aber die funktioniert nur mit VC++, das ich nicht benutze, ich wäre dankbar für hinweise, generell wie man das machen kann, Codeschnippsel e.t.c. aber auch über eine Freie Http-Klasse die nur C++ braucht würde ich mich freuen, dann müsste ich halt so noch rumexperimentieren.
 
[…] aber auch über eine Freie Http-Klasse die nur C++ braucht würde ich mich freuen, dann müsste ich halt so noch rumexperimentieren.
So eine wird es nicht geben, da man für eine Socket-Verbindung immer eine betriebssystemspezifische Bibliothek braucht. Daher wäre es nicht schlecht, wenn du uns verraten würdest, für welches Betriebssystem die Klasse sein sollte.

Grüße,
Matthias
 
Oh natürlich, tut mir Leid, also ich benutze Win Xp , das Prog sollte aber auch unter Vista funktionieren, falls möglich.

EDIT: ich habe Entdeckt, das der Borland Builder eine Http-Klasse hat, oder sowas ähnliches, ich glaube ich bin damit in der Lage http-Requests zu senden, dummerweise weiß ich nicht so viel darüber, sind die Packages die ich mit Wireshark abfangen kann dann direkt http befehle, die ich senden kann?
 
Zuletzt bearbeitet:
Sry wegen Doppelpost, aber das erschien mir immer noch besser als nen neuen Thread auf zu machen. ich habe jetzt rausgefunden, wie ich ein Bild hochladen kann, das ginge mit CURL wenn man die exe mit folgenden Parametern ausführt:
Code:
CURL -H Expect: -F fileupload="@c:\temp\1.jpg" -F xml=yes http://www.imageshack.us/index.php
Nun gibt es die Lib curl da das Beispiel für file upload lautet:
C:
#include <stdio.h>
#include <curl/curl.h>
#include <sys/stat.h>
#include <fcntl.h>

int main(void)
{
  CURL *curl;
  CURLcode res;
  struct stat file_info;
  double speed_upload, total_time;
  FILE *fd;

  fd = fopen("debugit", "rb"); /* open file to upload */
  if(!fd) {

    return 1; /* can't continue */
  }

  stat("debugit", &file_info); /* to get the file size */

  curl = curl_easy_init();
  if(curl) {
    /* upload to this place */
    curl_easy_setopt(curl, CURLOPT_URL,
                     "file:///home/dast/src/curl/debug/new");

    /* tell it to "upload" to the URL */
    curl_easy_setopt(curl, CURLOPT_UPLOAD, 1);

    /* set where to read from (on Windows you need to use READFUNCTION too) */
    curl_easy_setopt(curl, CURLOPT_READDATA, fd);

    /* and give the size of the upload (optional) */
    curl_easy_setopt(curl, CURLOPT_INFILESIZE_LARGE,
                     (curl_off_t)file_info.st_size);

    /* enable verbose for easier tracing */
    curl_easy_setopt(curl, CURLOPT_VERBOSE, 1);

    res = curl_easy_perform(curl);

    /* now extract transfer info */
    curl_easy_getinfo(curl, CURLINFO_SPEED_UPLOAD, &speed_upload);
    curl_easy_getinfo(curl, CURLINFO_TOTAL_TIME, &total_time);

    fprintf(stderr, "Speed: %.3f bytes/sec during %.3f seconds\n",
            speed_upload, total_time);

    /* always cleanup */
    curl_easy_cleanup(curl);
  }
  return 0;
}
Dummer weise kann ich nicht erkennen, wie ich jetzt diese Optionen wie z.B xml=yes festlegen kann, vielleicht hat kann das ja einer von euch daraus lesen und mir sagen. Ach ja und wie ich dann an den Inhalt von res komme, weiß einer vielleciht, ws das eig. ist? CURLcode
gruß Ryu 1991
 
Zuletzt bearbeitet:
Zurück