Veuillez vous connecter ou créer un compte pour suivre ce topic
Ce topic est suivi par: Clouder, Jerem971, Tydoo
Ce topic a été résolu
Auteur Sujet: Uploader un fichier vers JIRA REST API avec PHP cUrl

Tydoo
Membre Premium

Messages: 78

Hello all

je développe un script sur l'api de JIRA

je souhaites uploader un fichier via son api rest et je n'ay arrive pas

voici mon code
$ch_api = curl_init('https://website.com/rest/api/2/issue/SI-10255/attachments');
curl_setopt($ch_api, CURLOPT_POST, true);
curl_setopt($ch_api, CURLOPT_POSTFIELDS, json_encode(["file" => "@t.txt"]));
curl_setopt($ch_api, CURLOPT_HTTPHEADER, array('Content-Type:multipart/form-data','X-Atlassian-Token:no-check'));

curl_setopt($ch, CURLOPT_USERPWD, "login:password");
curl_setopt($ch_api, CURLOPT_RETURNTRANSFER, true);

$result = curl_exec($ch_api);
curl_close($ch_api);


Quand j execute le code, j'ai cette error :
the request was rejected because no multipart boundary was found


Et quand j'ajoute un boundary, le fichier n'est pas uploader et l'api me reponds pas un array vide
Des idées ?
Thanks

Tydoo
Membre Premium

Messages: 78

Non, la on est sur l'utilisation d'une API via cUrl et via PHP.

J'ai trouvé la  solution :

- Ne pas utiliser le header "Content-Type:multipart/form-data"
- Utiliser ce code pour le fichier : 
if (function_exists('curl_file_create')) {
        $cFile = curl_file_create("file.txt");
    } else { 
        $cFile = '@' . realpath("file.txt");
    }
Publicité

Clouder

Messages: 144

Salut Tydoo,

Tu aurais le code de ton formulaire en HTML en plus ?
Car j'ai l'impression qu'il ne trouve pas le multipart dans le formulaire :

<form method="post" enctype="multipart/form-data">
   ...
</form>

Tydoo
Membre Premium

Messages: 78

Non, la on est sur l'utilisation d'une API via cUrl et via PHP.

J'ai trouvé la  solution :

- Ne pas utiliser le header "Content-Type:multipart/form-data"
- Utiliser ce code pour le fichier : 
if (function_exists('curl_file_create')) {
        $cFile = curl_file_create("file.txt");
    } else { 
        $cFile = '@' . realpath("file.txt");
    }

Jerem971

Messages: 656

Hello @Tydoo,

Tu peux mettre le topic en "Résolu" alors 😉


Vous devez vous connecter ou créer un compte pour poster une réponse