IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

EDI, CMS, Outils, Scripts et API PHP Discussion :

ajout photo à API, erreur 406


Sujet :

EDI, CMS, Outils, Scripts et API PHP

  1. #1
    Membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Octobre 2019
    Messages
    61
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2019
    Messages : 61
    Points : 53
    Points
    53
    Par défaut ajout photo à API, erreur 406
    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:
    Code php : 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
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    //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 !

  2. #2
    Membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Octobre 2019
    Messages
    61
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2019
    Messages : 61
    Points : 53
    Points
    53
    Par défaut
    finalement j'ai fais ça
    Code PHP : 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
    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
       $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...

Discussions similaires

  1. [AC-2007] erreur ajout photo formulaire
    Par maximilien59 dans le forum IHM
    Réponses: 11
    Dernier message: 27/04/2012, 15h45
  2. Ajouter l'API bluetooth de bluecove
    Par amel666 dans le forum API standards et tierces
    Réponses: 1
    Dernier message: 02/05/2007, 17h40
  3. [DAO][VBA]Ajout d'enregistrement : erreur objet requis
    Par charlix dans le forum VBA Access
    Réponses: 7
    Dernier message: 22/04/2007, 16h02
  4. Erreur "406 not acceptable" avec idhttp
    Par sfpx dans le forum Delphi
    Réponses: 6
    Dernier message: 22/10/2006, 03h59
  5. Demande d'information pour ajout d'API Java dans eclipse
    Par BernardT dans le forum Eclipse Java
    Réponses: 6
    Dernier message: 07/07/2005, 17h08

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo