begin process at 2010 02 10 17:03:11
  Trouver un code source :
 
dans
 
Accueil > Forum > 

C

 > 

Divers

 > 

Général

 > 

Requete HTTP POST MIME - Upload de fichier


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Requete HTTP POST MIME - Upload de fichier

mardi 20 janvier 2009 à 19:21:28 | Requete HTTP POST MIME - Upload de fichier

SuperChouquette

Bonjour, je suis débutant et j'ai créer une fonction pour uploader un fichier sur un serveur php apache via le protocole http et le standard mime.

Le problème est pour uploader une image jpg, j'avais penser l'encoder en base_64 et rajouter Content-Transfer-Encoding:base64 dans le header de la requête, mais apparemment ça ne semble pas possible avec le protocole http (<lien url="http://www.faqs.org/rfcs/rfc2616.html">voir rfc2616</lien> - 19.4.5) si je l'encode en base 64 le fichier recut sur le serveur php reste en base 64 et n'est pas décodé ... et si je ne converti pas le fichier et l'envoi tel qu'elle(comme dans le code ci-dessous) cela ne marche pas non plus ... comment puis-je faire ?


Merci d'avance pour vos réponse ..
désolé si je n'ai pas été assez clair, mais n'hésitez pas à poser des questions ..
Chouquette .


Mon Code :


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();
        }

}
mardi 17 février 2009 à 13:07:11 | Re : Requete HTTP POST MIME - Upload de fichier

zibo3


Si tu as trouvé une solution je suis preneur. j'ai le même problème que toi.

mardi 3 mars 2009 à 19:37:40 | Re : Requete HTTP POST MIME - Upload de fichier

SuperChouquette

Non désolé je n'ai toujours pas trouvé, si toi aussi tu trouve préviens moi ^^
En attendant pour mes tests j'utilise la librairie Chilkat HTTP mais elle est payante et je n'ai qu'une version d'essais de 30 jours


Cette discussion est classée dans : fichier, http, char, sin, sock


Répondre à ce message

Sujets en rapport avec ce message

transfert de fichier sous MFC [ par seito ] [size=5] seito [/size]bonjours,j'aimerais déveloper une application de transfert de fichier sous MFC avec Visual C++ 6.le code que j'ai conçus marche SVP besoin d'aide [ par seito ] [size=5] seito [/size]j'ai déveloper une apploication pour transferer des fichiersla reception est parfaite pourtant à l'envoie ça me cause des tas de [serveur]telecharger fichier [ par lombredudragon ] Avec les socket je debute et j'aimerais me faire un serveur en c ou c++ ou kan on se connect au port 23 par telnet on recoit automatiquement un fichie [dev-cpp] probleme de compilation d'un fichier de classes [ par gergalp ] Voilà, alors, j'ai un fichier de classes qui est inclus dans le fichier principal ou j'ai ma fonction main(). Quand je veux compiler, j'ai l'erreur : Problème pour creer un bot. HELP ME [ par oshin ] Hello,Bon enfaite j'aimerais creer un bot pour qu'il se connect sur irc, rejoingne un salon et puis ce sera tout pour le moment. voici mon code:#inclu utilisation basique de winsock [ par Spiffou ] bonjour à tousj'essaie d'apprendre winsock en vc++ mode console pour le moment, et j'ai qlq difficultés...en gros j'etabli bien une connection entre l Fiabiliser transfert par socket [ par masseur ] Salut. Je vais vous expliquer mon petit problème. Je crée un client et un serveur. Des que le serveur recoit une demande il envoie un fichier en ut Prob avec les sockets [ par Sload ] Bonjour à tous ! Voila mon probleme , j'essaye de develloper un logiciel client/serveur. Je n'en suis qu'au tout début et j'ai déja un probleme lol ! erreur completement inexplicable ! [ par anonyme_man_in_this_world ] salut  ! lorsque j' execute les deux programmes sur mon pc, tout marche bien ,meme si je valide l'ip internet . Mais lorsque je les ai testé avec mes


Nos sponsors


Sondage...

CalendriCode

Février 2010
LMMJVSD
1234567
891011121314
15161718192021
22232425262728

Consulter la suite du CalendriCode

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 9,672 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales