Bonjour,

Je suis confronté à un problème et je ne parviens pas à trouver la solution. J’aimerais envoyer par curl, en une seule fois, un fichier ainsi que des paramètres dont des array.

Voila un exemple de code pour illustré le problème :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
 
$arrPost = array('key1' => "afdf",
				'userfile' => '@'.realpath('image.png'),
				'arr' => array('eee' => 'VV')
 
				);
$curl = curl_init($URL);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
curl_setopt($curl, CURLOPT_POST, true);
curl_setopt($curl, CURLOPT_POSTFIELDS, $arrPost);
$curl_response = curl_exec($curl);
Le problème c'est que mon URL de destination reçois "array" à la place du tableau "arr" :
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
19
20
21
22
23
 
$_POST :
 
Array
(
    [key1] => afdf
    [arr] => Array
)
 
$_FILES :
 
Array
(
    [userfile] => Array
        (
            [name] => image.png
            [type] => application/octet-stream
            [tmp_name] => /tmp/phps3kcKQ
            [error] => 0
            [size] => 71340
        )
 
)
J'ai tenté de modifier cette ligne :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
 
curl_setopt($curl, CURLOPT_POSTFIELDS, http_build_query($arrPost));
et cette fois j'ai bien le contenu de mon tableau mais je n'ai plus le fichier... :
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
19
 
$_POST :
 
Array
(
    [key1] => afdf
    [userfile] => @/var/www/monsite/image.png
    [arr] => Array
        (
            [eee] => VV
        )
 
)
 
$_FILES :
 
Array
(
)

Y-a-t-il une solution pour envoyer en même temps un fichier et des tableaux de valeur en post via Curl ?