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
Rejoignez-nous