Uploader un fichier vers JIRA REST API avec PHP cUrl

Suivre ce topic
Ce topic est suivi par : Tydoo
Ce topic a été résolu
Tydoo

Tydoo Le 31 octobre 2018 à 16:55 (Édité le 25 janvier 2019 à 17:54)

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

Tydoo Le 4 novembre 2018 à 12:41

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");
    }
Meilleure réponse
Clouder

Clouder Le 2 novembre 2018 à 20:51

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

Tydoo Le 4 novembre 2018 à 12:41

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");
    }
Meilleure réponse
Profil introuvable

Profil introuvable Le 4 novembre 2018 à 17:46

Hello @Tydoo,

Tu peux mettre le topic en "Résolu" alors 😉
Vous devez être connecté pour poster une réponse. Se connecter ou Créer un compte