Bonjour à tous,
Je souhaite envoyer un fichier vers mon local host par une requête POST en http écrite en C.
J'arrive bien à me connecter au serveur, j'ai tester avec des requetes GET et ça fonctionne super bien.
j'ai fait un script en php pour lire mon fichier uploader. Avec un formulaire html ça marche nikel.
Quelqu'un pourra t'il me dire comment faire pour avoir l'équivalent du formulaire en C?
Pour le moment, je procède comme suit,
1- j'ouvre mon fichier avec pf = fopen(fichier,"rb"),
2- je lit les données avec un fread(donnees,1,sizeFile,pf)
3- je construit ma requête avec un sprintf
3- j'envoie ma requete avec SockSend(to_server_socket, line, strlen(line), 0)
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18 sprintf(line, "POST <a href="http://localhost/upload.php" target="_blank">http://localhost/upload.php</a> HTTP/1.1\r\n" "Host: localhost \r\n" "Accept:text/xml, application/xml, text/html, image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, image/png, application/pdf, */*\r\n" "Accept-Encoding: gzip, deflate\r\n" "Accept-charset: ISO-8859-1, utf-8\r\n" "Keep-Alive: 300 \r\n" "Referer: http://localhost\r\n" "Content-Type: multipart/form-data; boundary=----BOUNDARY-TEST----\r\n" "Content-length: %d\r\n" "\r\n" "------BOUNDARY-TEST----\r\n" "Content-Disposition: form-data; name=\"fileupload\"; filename=\"%s\"\r\n" "Content-Type: image/pjpeg\r\n" "%c\r\n" "\r\n" "------BOUNDARY-TEST------\r\n" "\r\n" ,sizeFile,fichier, **donnees);
Je pense que mon problème vient de la construction de ma requête. pourriez vous svp me dire comment insérer les données binaires récupérées lors de la lecture du fichier à ma requête.
Merci à tous d'avance.
Partager