Maison > développement back-end > tutoriel php > php télécharger des fichiers via CURL

php télécharger des fichiers via CURL

PHP中文网
Libérer: 2023-03-05 16:46:01
original
2417 Les gens l'ont consulté

p>PHP utilise CURL pour télécharger des fichiers. Envoyez simplement une requête POST. Définissez un champ dans la requête avec le chemin complet du fichier à télécharger, en commençant par "@", puis utilisez CURL pour POST. La méthode variable est envoyée au serveur et les informations de fichier téléchargées correspondantes peuvent être obtenues à partir de la variable super globale $_FILES côté serveur.

<br>

Ci-dessous, nous montrons ce processus avec un exemple.

<br>

Supposons qu'il existe un fichier texte local log.txt, son chemin est "/www/test/log.txt" et le contenu est le suivant :

this is a file for test
hello PythonTab!
Copier après la connexion

Afin de télécharger ce fichier vers le script côté serveur http://www.pythontab.com/upload.php, nous avons écrit un script local nommé curl_file.php avec le contenu suivant :

<php?
//要上传的本地文件地址
"upload" = > "@/www/test/log.txt"
);
$ch = curl_init();
curl_setopt($ch , CURLOPT_URL , $url);
curl_setopt($ch , CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch , CURLOPT_POST, 1);
curl_setopt($ch , CURLOPT_POSTFIELDS, $post_data);
$output = curl_exec($ch);
curl_close($ch);
echo $output;
 ?>
Copier après la connexion

La logique de curl_file.php est très simple Définissez la variable POST $post_data, où le téléchargement pointe vers le fichier qui doit être envoyé. Il convient de noter ici que lorsque nous utilisions POST auparavant, nous envoyions une chaîne, puis utilisions file_get_contents("php//input") côté serveur pour obtenir la chaîne. C'est différent de l'utilisation ici. peut également être comme GET. Envoyer des paires clé-valeur. Il existe une variable super globale $_POST côté serveur qui peut obtenir la valeur des données POST correspondantes, tout comme $_GET. A noter que la variable d'upload des fichiers n'existe pas dans $_POST, mais dans $_FILES.


Afin de montrer la logique du serveur recevant la demande de téléchargement de fichier à partir du code ci-dessus, nous avons écrit le code suivant dans upload.php :

<br>
Copier après la connexion

upload.php utilise d'abord var_export pour afficher la variable $_FILES sur la sortie standard, puis utilise file_get_contents pour lire le contenu du fichier pointé par $_FILES['upload']['tmp_name'], et le renvoie vers la sortie standard, puis place $_FILES[' Le fichier pointé par upload']['tmp_name'] est copié dans le fichier log_copy.txt dans le répertoire courant. La sortie standard de ce script est la suivante :

array(
 &#39;upload&#39; =>
     array(
     &#39;name&#39; => &#39;log.txt&#39;,
     &#39;type&#39; => &#39;application/octet-stream&#39;,
     &#39;tmp_name&#39; => &#39;/tmp/phpLUB59F&#39;,
     &#39;error&#39; => 0,
     &#39;size&#39; => 36,
     )
 )
 this is a file for test
 hello PythonTab!
Copier après la connexion

Vous pouvez voir qu'il existe un tableau de téléchargement dans la variable $_FILES, qui correspond aux informations de description du fichier téléchargé, où le nom et le type représentent le nom. et tapez respectivement. tmp_name est plus critique. Une fois que le serveur reçoit le fichier téléchargé, il écrira le fichier dans un fichier temporaire. Le nom de ce fichier temporaire est la valeur de tmp_name. C'est pourquoi nous pouvons obtenir le contenu du fichier log.txt. lecture du fichier. Généralement, une fois que le serveur a reçu le fichier téléchargé, il doit lire le fichier immédiatement ou copier le fichier dans un autre fichier, car le fichier temporaire pointé par tmp_name sera supprimé après l'exécution du script du serveur. La ligne consiste à copier le fichier temporaire dans notre fichier cible.

<br>

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal