Bonjour à tous,

Je suis sur une projet où je dois coder une site internet en php. Ce site est "lié" à une API.

Le but du site est de créer des fiches de non conformité pour ensuite y avoir accès. Mon problème est lors de l'ajout de photos à une fiche.

Voici mon code:
//récupération du token pour avoir accès à la fonction de l'API
$token_file=fopen("headers.txt","r");
        $i=0;
        while($i<2)
        {
            $token=fgets($token_file);
            $i++;
        }
        fclose($token_file);
 
//récupération du chemin de la photo (c'est le bon chemin qui récupère la photo j'ai testé
        $pathCurrrent=getcwd ();
        $path= str_replace("public", "src/Controller", $pathCurrrent);
        $dir    = "$path/uploads";
        $allFiles = scandir($dir);
        $files=array_diff($allFiles, array('.','..'));
        print_r($files);
        $photo=$dir.'/'.$files[2];
        echo $photo;
 
        $curl = curl_init();
 
        curl_setopt_array($curl, array(
            CURLOPT_URL => "http://monURl/uploadFile?flashAttributes=%7B%7D&fnc_id=7&type=true",
            CURLOPT_ENCODING => "",
            CURLOPT_MAXREDIRS => 10,
            CURLOPT_TIMEOUT => 0,
            CURLOPT_FOLLOWLOCATION => true,
            CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
            CURLOPT_CUSTOMREQUEST => "POST",
            CURLOPT_POSTFIELDS => array('file'=> new CURLFILE($photo)),
            CURLOPT_HTTPHEADER => array(
                rtrim($token, "\r\n"),
                'Accept: /',
                "Content-Type: multipart/form-data"
 
            ),
        ));
        curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
        curl_setopt($curl, CURLOPT_POST, 1);
         
        $result = curl_exec($curl);
        var_dump($result);
        $http_code = curl_getinfo($curl, CURLINFO_HTTP_CODE);
        var_dump($http_code);
        curl_close($curl);



Cependant cela me renvoie une erreur 406 je ne comprends pas pourquoi. Pourriez-vous m'aider ? Un grand merci !
finalement j'ai fais ça
   $token_file=fopen("headers.txt","r");
        $i=0;
        while($i<2)
        {
            $token=fgets($token_file);
            $i++;
        }
        fclose($token_file);


        $pathCurrrent=getcwd ();
        $path= str_replace("public", "src/Controller", $pathCurrrent);
      //  echo $path;
        $dir    = "$path/uploads";
        $allFiles = scandir($dir);
        $files=array_diff($allFiles, array('.','..'));
        print_r($files);
        $photo=$dir.'/'.$files[2];
      //  print_r($files[2]);
        echo $photo;

        $boundary = uniqid();
        echo $boundary;
        $delimiter = '-------------' . $boundary;

     /*   if (function_exists('curl_file_create')) { // php 5.5+
            $cFile = curl_file_create($photo);
        } else { //
            $cFile = '@' . realpath($photo);
        }
        $post = array('extra_info' => '123456','file'=> $cFile);*/


        $curl = curl_init();

        curl_setopt_array($curl, array(
            CURLOPT_URL => "http://varlot.epfprojets-sceaux.com:8080/uploadFile?flashAttributes=%7B%7D&fnc_id=7&type=true",
            CURLOPT_ENCODING => "",
            CURLOPT_MAXREDIRS => 10,
            CURLOPT_TIMEOUT => 0,
            CURLOPT_FOLLOWLOCATION => true,
            CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
            CURLOPT_CUSTOMREQUEST => "POST",
            CURLOPT_POSTFIELDS => array('file'=> @$photo),
            CURLOPT_HTTPHEADER => array(
                rtrim($token, "\r\n"),
               // 'Accept: /',
                "Content-Type: multipart/form-data; boundary=" . $delimiter,

            ),
        ));
        curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
        curl_setopt($curl, CURLOPT_POST, 1);

      //  curl_setopt($curl, CURLOPT_POSTFIELDS, $post);
        //$postfiles=array('file'=> new CURLFILE($photo));
       // print_r($postfiles);

        $result = curl_exec($curl);
        var_dump($result);
        $http_code = curl_getinfo($curl, CURLINFO_HTTP_CODE);
        var_dump($http_code);
        curl_close($curl);

Et j'ai l'erreur 400 Required request part 'file' is not present. Mais je ne comprends pas car il y le champs 'file'. j'ai essayé de la faire en mettant new CURLFILE aussi mais j'ai eu la même erreur...