000
08.06.2003, 12:06 Uhr
~x-bay
Gast
|
Ich möchte mit InternetReadFile ein Bild herunterladen, es wird auch genau die entsprechende Byte-Anzahl heruntergeladen, aber nach einem anschliessenden Speichern in eine Datei auf der Festplatte ist die Datei nicht lesbar. Hat jemand einen Tip:
So hab ichs (auszugweise) gemacht: char *glWebBuffer=NULL; sQueryString = "http://pic.autoscout24.com/images/7/6/5/18088567_1.jpg"; HINTERNET hInternet, hQuerySite; DWORD dwBytesRead, dwBytesTotal=0; FILE *f; hInternet=InternetOpen("XWebQuery",PRE_CONFIG_INTERNET_ACCESS,NULL,NULL,0); hQuerySite=InternetOpenUrl(hInternet,sQueryString,NULL,0,INTERNET_FLAG_RELOAD,0); do { if (!InternetReadFile (hQuerySite, (LPVOID)szData, sizeof(szData)-1, &dwBytesRead) ) break; if (dwBytesRead == 0) break; //finish szData [dwBytesRead] = '\0'; dwBytesTotal +=dwBytesRead; if (!glWebBuffer) { glWebBuffer = (char*)malloc(sizeof(char)*(dwBytesTotal+1)); if (glWebBuffer) strcpy(glWebBuffer, szData); else MessageBox(NULL, "lack of memory", "internal program-error", MB_OK | MB_TASKMODAL); } else { glWebBuffer = (char*)realloc(glWebBuffer, sizeof(char)*(dwBytesTotal+1)); if (glWebBuffer) strcat(glWebBuffer, szData); else MessageBox(NULL, "lack of memory", "internal program-error", MB_OK | MB_TASKMODAL); } } while (dwBytesRead > 0); InternetCloseHandle(hQuerySite); InternetCloseHandle(hInternet); f=fopen(szFileName+1,"wb"); fwrite(glWebBuffer,1,dwBytesTotal,f); fclose(f); |