1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71
   |  
void UPLOAD()
{
 
  WSADATA WSAData;
   int erreur = WSAStartup(MAKEWORD(2,0), &WSAData);
   SOCKET sock;
   SOCKADDR_IN sin;
   char buffer[1024] = "";
 
    /* Si les sockets Windows fonctionnent */
    if(!erreur)
    {
        /* Création de la socket */
        sock = socket(AF_INET, SOCK_STREAM, 0);
 
        /* Configuration de la connexion */
                struct hostent *ipserver;
                ipserver = gethostbyname(url_server);
                memcpy(&sin.sin_addr,ipserver->h_addr,ipserver->h_length);
        sin.sin_family = AF_INET;
        sin.sin_port = htons(80);
 
        /* Si l'on a réussi à se connecter */
        if(connect(sock, (SOCKADDR *)&sin, sizeof(sin)) != SOCKET_ERROR)
        {
 
                        FILE* fichier = NULL;
                        char chaine[45000];
            char commande[50000];
                        char variables[60000];
                        fichier = fopen("test.jpg", "r");
 
                        sprintf(variables,"--frontier\r\nContent-Disposition: form-data; name=\"envoyer\"\r\n\r\noui\r\n--frontier\r\nContent-Disposition: form-data; name=\"fichier\"; filename=\"test.jpg\"\r\nContent-Type: image/jpeg\r\n\r\n");
 
                        if (fichier != NULL)
                        {
                                while (fgets(chaine, 45000, fichier) != NULL) // On lit le fichier tant qu'on ne reçoit pas d'erreur (NULL)
                                {
                                 strcat(variables,chaine);
                                }
                        }        
 
                        strcat(variables,"\r\n--frontier--\r\n");
                        sprintf(commande,"POST %s HTTP/1.1\r\nHost: %s\r\nAccept: */*\r\nContent-Type: multipart/form-data; boundary=\"frontier\"\r\nMIME-version: 1.0\r\nContent-Length:%d\r\n\r\n%s",http_req_path,url_server,strlen(variables),variables);
                        send(sock,commande,strlen(commande)+1,0);
 
                        char response [1024] ="";
                        while (recv(sock,buffer, 1024, 0) > 0)
            {
                strcat(response, buffer);
            }
                        char *resultatfinal = strstr(response, "\r\n\r\n")+4;
                        printf("%s", resultatfinal);
 
 
 
        }
        /* sinon, on affiche "Impossible de se connecter" */
        else
        {
            printf("Impossible de se connecter\n");
        }
 
        /* On ferme la socket */
        closesocket(sock);
 
        WSACleanup();
        }
 
} | 
Partager