Wie um das Bild zu speichern mit libcurl
Wollte ich mit libcurl für ein Projekt, die beinhaltet, ein Bild von einer Webseite.
Die URL sieht wie folgt aus:
http://xxx.xxx.xxx.xxx/cgi-bin/anonymous/image.jpg
Mithilfe der Befehlszeile cURL kann ich abrufen das Bild mit
$curl -o sampleimage.jpg http://xxx.xxx.xxx.xxx/cgi-bin/anonymous/image.jpg
Ich will wissen, das äquivalent dieser code in libcurl, weil ich bin immer Nüsse jetzt. Ich habe dieses Beispiel-Quelle auf dem Netz, und es kompiliert und Zeug, aber ich kann nicht sehen die image-Datei irgendwo.
Dies ist der code:
#include <iostream>
#include <curl/curl.h>
#include <stdio.h>
using namespace std;
int main(){
CURL *image;
CURLcode imgresult;
FILE *fp;
image = curl_easy_init();
if( image ){
//Open file
fp = fopen("google.jpg", "wb");
if( fp == NULL ) cout << "File cannot be opened";
curl_easy_setopt(image, CURLOPT_URL, "http://192.168.16.25/cgi-bin/viewer/video.jpg");
curl_easy_setopt(image, CURLOPT_WRITEFUNCTION, NULL);
curl_easy_setopt(image, CURLOPT_WRITEDATA, fp);
//Grab image
imgresult = curl_easy_perform(image);
if( imgresult ){
cout << "Cannot grab the image!\n";
}
}
//Clean up the resources
curl_easy_cleanup(image);
//Close the file
fclose(fp);
return 0;
}
BTW ich bin ein Mac und ich bin kompilieren Sie diesen code in XCode, die hat eine Bibliothek libcurl.
*EDIT:*Problem behoben. Ich habe gerade einen vollständigen Pfad für die fopen(). Danke Mat! Bitte beantworten Sie die Frage so, dass ich wählen kann, Ihnen als die richtige Antwort. Danke!
- Verwenden Sie einen vollständigen Pfad in der
open
nennen, so dass Sie wissen, wo Sie suchen. - Ich werde es versuchen. Aber wie mache ich es mit dem mac? Ich weiß, wie es zu tun in Windows' Dateisystem, aber nicht in einem Mac. Danke.
- Wie kann ich die Meldung der Kerl, der kommentiert?! Habe das problem behoben Dank, dass guy. Hey Mat, bitte um Antwort, so dass ich wählen Sie Ihre Antwort. Danke!
- Ich habe Ihre Kommentare - eine Benachrichtigung wird automatisch gesendet, um das poster und die vorherigen Kommentator zu, wenn Sie einen Kommentar hinzufügen. Wenn Sie wollen, um den Gegner mit einer bestimmten person in den Kommentar-thread, Vorwahl, Ihren Namen mit einem
@
.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Verwenden Sie einen vollständigen Pfad in der open-Aufruf, so dass Sie wissen, wo Sie suchen.
Außerdem sollten Sie sich die
perror
- Funktion, so dass Sie drucken können, der Grund, warum das öffnen fehlschlägt, wenn es nicht - spart ein paar Kopfschmerzen.Letzte Sache: initialisieren
fp
auf null, oder nurfclose(fp)
wenn es wirklich zu öffnen. Wie es steht, wenncurl_easy_init
fehlschlägt, werden Sie versuchenfclose
eine zufällige Zeiger.