Winsock image

Résolu
niketou
Messages postés
295
Date d'inscription
dimanche 4 mai 2003
Statut
Membre
Dernière intervention
6 décembre 2010
- 14 juil. 2006 à 16:04
niketou
Messages postés
295
Date d'inscription
dimanche 4 mai 2003
Statut
Membre
Dernière intervention
6 décembre 2010
- 15 juil. 2006 à 00:30
Salut a tous ,
C'est quoi la commande pour recuperer un fichier image sur une site svp?
Avec la methode send et GET de windock.

Merci a vous.

11 réponses

Utilisateur anonyme
14 juil. 2006 à 22:48
Un conseil utilise WinInet parceque sinon il faut apprendre le protocol HTTP.
Wininet le fait pour nous.
Winiinet contient des fonction pour  faciliter le http ftp... c'est de l'API WIN32
Alors c'est sur la msdn que tu auras plus d'info...
ps: recupéré ton image avec wininet se fait en 6 petites lignes de codes

++
MaLaDeDeDe 97one 
3
MuPuF
Messages postés
536
Date d'inscription
mercredi 27 avril 2005
Statut
Membre
Dernière intervention
22 août 2008

14 juil. 2006 à 23:08
ben l'embrouille c'est qu'on sait jamais ou ça foire, wininet est trés simple mais bon en ftp c'est nul a chier
3
MuPuF
Messages postés
536
Date d'inscription
mercredi 27 avril 2005
Statut
Membre
Dernière intervention
22 août 2008

14 juil. 2006 à 19:04
salut, tu as l'air de mélanger un peu tout.
Tout d'abord il te faut te connecter au serveur, puis envoyer une commande (HTTP) GET, et la tu recevra une réponse avec ton image dedans.
vila, si tu as besoin d'aide pour acquérir l'image, j'ai une fonction sympa que je me suis bien amusé a faire.
0
niketou
Messages postés
295
Date d'inscription
dimanche 4 mai 2003
Statut
Membre
Dernière intervention
6 décembre 2010

14 juil. 2006 à 20:05
Salut.
J'ai deja commencer mon code.
Je me connecte au site www.site.com
dans le site il y a une image (www.site/dossier/image.bmp)
Je voudrais recuperer l'image (avec la commande (htpp)GET).
Il faut ecrire quoi dans send?.
Merci a toi.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
MuPuF
Messages postés
536
Date d'inscription
mercredi 27 avril 2005
Statut
Membre
Dernière intervention
22 août 2008

14 juil. 2006 à 22:50
salut, wininet c'est pas la panacé, aucune remontée correcte d'erreur, et puis c'est une dépendance de plus, moins il y en a mieux on se porte.
Si il a un probleme, il peut utiliser ma fonction.
0
niketou
Messages postés
295
Date d'inscription
dimanche 4 mai 2003
Statut
Membre
Dernière intervention
6 décembre 2010

14 juil. 2006 à 22:55
Ok je vai essayer.
Avec Winsock j'y suis arriver a avoir les donnees.
un recv pour avoir les tags puis une boucle pour recuperer les donnees.
Pour la taille du fichier comment les chercher dans les tags?.
0
MuPuF
Messages postés
536
Date d'inscription
mercredi 27 avril 2005
Statut
Membre
Dernière intervention
22 août 2008

14 juil. 2006 à 22:57
utilise les strings, tant que c'est pas la fin tu extrais les données et tu les rajoute dans un string puis il te reste plus qu'a écrire ça dans un fichier
0
niketou
Messages postés
295
Date d'inscription
dimanche 4 mai 2003
Statut
Membre
Dernière intervention
6 décembre 2010

14 juil. 2006 à 23:02
Wininet ca a l'air simple dit donc.
Elle est ou l'embrouille?,C'est moins rapide qu'avec winsock?.
0
Utilisateur anonyme
14 juil. 2006 à 23:11
Oui ca c'est vrai wininetFTPne marche pas avec les compte Lycos.

MaLaDeDeDe 97one 
0
katsankat
Messages postés
571
Date d'inscription
vendredi 30 décembre 2005
Statut
Membre
Dernière intervention
12 juillet 2012
3
14 juil. 2006 à 23:47
Ya aussi L' API URLMON c'est encore plus simple.
0
niketou
Messages postés
295
Date d'inscription
dimanche 4 mai 2003
Statut
Membre
Dernière intervention
6 décembre 2010

15 juil. 2006 à 00:30
J'ai recuperé ce code :

#include <stdio.h>
#include <windows.h>
#include <Wininet.h>
#pragma comment(lib, "Wininet.lib")


char szURL[] = "http://mkerbrat.chez.tiscali.fr/xavier/images/phantommenace.jpg";


int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, PSTR szCmdLine, int iCmdShow){
char * pFile;DWORD dwFileSize 0, dwByteRead 0;
DWORD dwContext = 0;
HINTERNET hSession, hUrl;
FILE *fichier;


hSession = InternetOpen("test", INTERNET_OPEN_TYPE_DIRECT, 0, 0, 0);


if(hSession == NULL)
return 1;


hUrl = InternetOpenUrl(hSession, szURL, 0, 0, INTERNET_FLAG_EXISTING_CONNECT, (DWORD_PTR)&dwContext);


if(hUrl == NULL)
return 1;


InternetQueryDataAvailable(hUrl, &dwFileSize, 0, (DWORD_PTR)&dwContext);


pFile = (char*)malloc(dwFileSize+1);


fichier = fopen("test.jpg" , "w");
if (fichier == NULL)
return 1;


memset(pFile, 0, dwFileSize);
InternetReadFile(hUrl, pFile, dwFileSize, &dwByteRead);
pFile[dwByteRead] = 0;


fwrite(pFile, dwFileSize, 1, fichier);


fclose(fichier);


free(pFile);
InternetCloseHandle(hUrl);
InternetCloseHandle(hSession);


return 0;
}
fopen("test.jpg" , "wb");

mais quand j'ai une image +100ko,elle s'affiche pas en entier,le reste est gris.
0