Upload de fichier avec libcurl, définir "name" et autre.

Le problème exposé dans ce sujet a été résolu.

Bonjour, (Je suis nouveau sur se forum, venu depuis OpenClassrooms, donc je me présente vite fais. J'ai 16 ans, passionné d'informatique et plus précisément dans le développement web. Actuellement je suis une formation de Dessinateur-constructeur en microtechnique.)

Voici donc mon problème. J'ai un code en c++ pour upload un fichier sur un site web. Mais le retour de ma page indique qu'aucun fichier n'a été transmis. Normal je suppose, puisque je dois nul part définir le name="" de de l'input.

Voici mon code (c++):

 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
#include <stdio.h>
#include <curl/curl.h>
#include <sys/stat.h>
#include <fcntl.h>

int main(void)
{
 CURL *curl;
 CURLcode res;
 struct stat file_info;
 double speed_upload, total_time;
 FILE *fd;

 fd = fopen("D:/sound.mp3", "rb"); /* open file to upload */
 if(!fd) {

   return 1; /* can't continue */
 }

 /* to get the file size */
 if(fstat(fileno(fd), &file_info) != 0) {

   return 1; /* can't continue */
 }

 curl = curl_easy_init();
 if(curl) {
   /* upload to this place */
   curl_easy_setopt(curl, CURLOPT_URL,
                    "http://dev.winlap.ch/libcurl");

   /* tell it to "upload" to the URL */
   curl_easy_setopt(curl, CURLOPT_UPLOAD, 1L);

   /* set where to read from (on Windows you need to use READFUNCTION too) */
   curl_easy_setopt(curl, CURLOPT_READDATA, fd);

   /* and give the size of the upload (optional) */
   curl_easy_setopt(curl, CURLOPT_INFILESIZE_LARGE,
                    (curl_off_t)file_info.st_size);

   /* enable verbose for easier tracing */
   curl_easy_setopt(curl, CURLOPT_VERBOSE, 1L);

   res = curl_easy_perform(curl);
   /* Check for errors */
   if(res != CURLE_OK) {
     fprintf(stderr, "curl_easy_perform() failed: %s\n",
             curl_easy_strerror(res));

   }
   else {
     /* now extract transfer info */
     curl_easy_getinfo(curl, CURLINFO_SPEED_UPLOAD, &speed_upload);
     curl_easy_getinfo(curl, CURLINFO_TOTAL_TIME, &total_time);|

     fprintf(stderr, "Speed: %.3f bytes/sec during %.3f seconds\n",
             speed_upload, total_time);

   }
   /* always cleanup */
   curl_easy_cleanup(curl);
 }
 return 0;
}

Et la page PHP (Disponible sur dev.winlap.ch/libcurl)

1
2
3
4
5
6
7
8
9
<?php
if(isset($_FILES['upload']))
{
  echo 'FICHIER RECU';
}
else
{
  echo 'ERREUR';
}

Voilà. Si vous avez une idée de comment définir se name, c'est avec plaisir. En vous remerciant, WinXaito.

+0 -0
Connectez-vous pour pouvoir poster un message.
Connexion

Pas encore membre ?

Créez un compte en une minute pour profiter pleinement de toutes les fonctionnalités de Zeste de Savoir. Ici, tout est gratuit et sans publicité.
Créer un compte