web-dev-qa-db-fra.com

comment télécharger un fichier en utilisant curl avec php

Je veux savoir comment télécharger un fichier en utilisant cURL ou quoi que ce soit d'autre en PHP. J'ai cherché dans google plusieurs fois mais aucun résultat.

En d'autres termes, l'utilisateur voit un bouton de téléchargement de fichier sur un formulaire, celui-ci est posté sur mon script php, puis mon script php doit le republier sur un autre script (par exemple sur un autre serveur).

J'ai ce code pour recevoir le fichier et le télécharger

code:

echo"".$_FILES['userfile']."";
$uploaddir = './';
$uploadfile = $uploaddir . basename($_FILES['userfile']['name']);
if ( isset($_FILES["userfile"]) ) {
    echo '<p><font color="#00FF00" size="7">Uploaded</font></p>';
    if (move_uploaded_file
($_FILES["userfile"]["tmp_name"], $uploadfile))
echo $uploadfile;
    else echo '<p><font color="#FF0000" size="7">Failed</font></p>';
}

Je veux le code pour envoyer le fichier au fichier récepteur.

64
Hadidi44

Utilisation:

if (function_exists('curl_file_create')) { // php 5.5+
  $cFile = curl_file_create($file_name_with_full_path);
} else { // 
  $cFile = '@' . realpath($file_name_with_full_path);
}
$post = array('extra_info' => '123456','file_contents'=> $cFile);
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL,$target_url);
curl_setopt($ch, CURLOPT_POST,1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $post);
$result=curl_exec ($ch);
curl_close ($ch);

Vous pouvez aussi vous référer:

http://blog.derakkilgo.com/2009/06/07/send-a-file-via-post-with-curl-and-php/

Conseil important pour PHP 5.5 +:

Maintenant, nous devrions utiliser https://wiki.php.net/rfc/curl-file-upload mais si vous souhaitez toujours utiliser cette approche obsolète, vous devez définir curl_setopt($ch, CURLOPT_SAFE_UPLOAD, false);

129
karthik