Bonjout tout le monde;
J'ai besoin d'un code c qui me permet d'envoyer un fichier (une image par exemple) à un serveur HTTP.
Merci.
Bonjout tout le monde;
J'ai besoin d'un code c qui me permet d'envoyer un fichier (une image par exemple) à un serveur HTTP.
Merci.
Ce n'est pas très compliqué à faire, il suffit d'implémenter la requête POST en C avec les sockets.
Tu as tout ce qu'il faut dans la RFC 2616 pour les détails d'implémentation
Raymond
Vous souhaitez participer à la rubrique Réseaux ? Contactez-moi
CafuroCafuro est un outil SNMP dont le but est d'aider les administrateurs système et réseau à configurer leurs équipements SNMP réseau.
e-verbeUn logiciel de conjugaison des verbes de la langue française.
Ma page personnelle sur DVP.
Merci pour la réponse;
mais je veux clarifier 2 points:
* Est ce que je dois convertir ( avant d'envoyer la requete http ) l'image en ASCII et la mettre au buffer?
* si vous avez un exemple de trame http POST d'envoi d'un fichier merci de la poster.
Raymond
Vous souhaitez participer à la rubrique Réseaux ? Contactez-moi
CafuroCafuro est un outil SNMP dont le but est d'aider les administrateurs système et réseau à configurer leurs équipements SNMP réseau.
e-verbeUn logiciel de conjugaison des verbes de la langue française.
Ma page personnelle sur DVP.
salut,
j'ai trouvé un bout de code pour former ma trame http pour envoyer un fichier texte.
Le serveur affiche que l'upload est complet mais n ouvrant le fichier je le trouve vide.
voici le code:
const char entete1[] = "POST /Upload HTTP/1.1\r\n"
"Content-Type: multipart/form-data; boundary=92521164717432\r\n"
"Content-Length: ";
const char cariage_return[] = "\r\n\r\n";
const char entete2[] = "--92521164717432\r\n"
"Content-Disposition: form-data; name=\"passwd\"\r\n\r\n";
const char mdp[] = "0011223344556677";
const char entete3[] = "\r\n--92521164717432\r\n"
"Content-Disposition: form-data; name=\"frontalip\"\r\n\r\n";
const char entete4[] = "\r\n--92521164717432\r\n"
"Content-Disposition: form-data; name=\"request\"; filename=\"file\"\r\n"
"Content-Type: application/octet-stream\r\n\r\n";
const char boundary[] = "\r\n--92521164717432--\r\n\r\n";
int send_http( char *file_to_send, unsigned int file_length )
{
int lenRequest;
int len_header;
char adr_ip[64];
char pRequetteBuffer[3100];
memset( pRequetteBuffer,0x00,sizeof(pRequetteBuffer));
//unsigned int RequestBufferLen = 0;
memset( adr_ip,0x00,sizeof(adr_ip));
memcpy( adr_ip,"10.3.1.44",9);
len_header = strlen(entete2) + strlen(mdp) + strlen(entete3) + strlen(adr_ip) + strlen(entete4) + strlen(boundary);
sprintf(pRequetteBuffer,"%s%d%s%s%s%s%s%s", entete1, len_header + file_length, cariage_return,
entete2, mdp, entete3, adr_ip, entete4);
lenRequest = strlen(pRequetteBuffer);
memcpy(pRequetteBuffer + lenRequest, file_to_send, file_length);
lenRequest = lenRequest + file_length;
sprintf(pRequetteBuffer + lenRequest, boundary);
lenRequest += strlen(boundary);
SendMessage(pRequetteBuffer,lenRequest);
}
Partager