Envoyer un fichier avec CURL
Bonjour
Je suis en PHP 7 et je veux envoyer un fichier avec CURL
J'ai repris des exemples de la doc et ceux du web, mais je ne parviens pas à envoyer le fichier
Cela semble pourtant simple.
Voici ce que j'ai codé:
Code:
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
| $uri=$POST_ApiAdresse.'api/now/attachment/upload?table_name=sc_req_item&table_sys_id='.$Id;
$Chemin='c:/Users/ulmeen/Documents/';
$Fichier='MonFichier.xml';
$FichierSource=$Chemin.$Fichier;
$curl = curl_init($uri);
$headers = array(
'Accept:application/json',
'Content-Type:multipart/form-data',
'Authorization: Basic '. $POST_Acces
);
$cfile = curl_file_create($FichierSource,$Mime,$Fichier);
$data = array('file' => $cfile);
echo '<br/>datas à transférer<br/>';
print_r($data);
echo '<br/>';
curl_setopt($curl, CURLOPT_HTTPHEADER, $headers);
curl_setopt($curl, CURLOPT_POST, 1);
curl_setopt($curl, CURLOPT_POSTFIELDS, $data);
echo '<br/>transfert fichier ...';
$result_retour = curl_exec($curl);
if(strpos($result_retour,'failure') >0 || curl_errno($curl) >0){
echo '......pas de transfert';
echo '<br/>Erreur Curl='.curl_errno($curl);
echo '<br/>retour Curl:'.$result_retour;
}
else{
echo '......Fichier transféré';
} |
J'obtiens :
datas à transférer
Citation:
Array ( [file] => CURLFile Object ( [name] => c:/Users/ulmeen/Documents/MonFichier.xml [mime] => xml [postname] => MonFichier.xml ) )
transfert fichier .........pas de transfert
Erreur Curl=26 ce qui correspond à "There was a problem reading a local file or an error returned by the read callback."
Avez-vous une idée pour m'aider ?
Cordialement
info du fichier à transférer
De base, j'ai prévu que le fichier X situé sur le partage auquel accède mon serveur Web (lecteur du serveur déporté sur un serveur de fichiers) soit déposé via une API sur une autre plateforme.
Mais comme cela ne fonctionne pas, j'ai tenté le transfert d'un fichier situé son mon ordi.
Et enfin, comme vous le suggériez, j'ai tenté le transfert d'un fichier situé sur le serveur web même dans le répertoire de mes pages php..