PHP implémente la fonction de téléchargement de fichiers via CURL

不言
Libérer: 2023-03-28 18:28:02
original
1906 Les gens l'ont consulté

Cet article présente principalement la fonction de téléchargement de fichiers via CURL en PHP et analyse les paramètres d'attributs associés et les compétences d'utilisation de PHP en utilisant l'opération de téléchargement de fichiers curl sous forme d'exemples. Les amis dans le besoin peuvent se référer à ce qui suit

.

Les exemples de cet article sont expliqués. Utilisez PHP pour implémenter la fonction de téléchargement de fichiers via CURL. Partagez-le avec tout le monde pour votre référence. Les détails sont les suivants :

Pour utiliser CURL en PHP pour télécharger des fichiers, il vous suffit d'envoyer une requête POST. Définissez un certain champ dans la requête sur le chemin complet de. le fichier qui doit être téléchargé, et commencez par "@", puis utilisez CURL pour envoyer la variable au serveur en mode POST. Les informations correspondantes sur le fichier téléchargé peuvent être obtenues à partir de la super variable globale $_FILES côté serveur.

Ci-dessous, nous utilisons un exemple pour démontrer ce processus.

Supposons qu'il existe localement un fichier texte log.txt, son chemin est "/www/test/log.txt", 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 dans le script côté serveur http://www.php.cn/article.html, nous avons écrit un script local nommé curl_file.php avec le contenu suivant :

<?php
$url = "http://www.php.cn/article.html";
$post_data = array(
"foo" => "bar",
//要上传的本地文件地址
"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. Ceci est différent de l'utilisation ici. En fait, POST peut également envoyer une valeur-clé. des paires comme GET. 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 :

<?php
echo var_export($_FILES,true);
echo file_get_contents($_FILES[&#39;upload&#39;][&#39;tmp_name&#39;]);
copy($_FILES[&#39;upload&#39;][&#39;tmp_name&#39;], "./log_copy.txt");
?>
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[&#39;upload&#39;][&#39;tmp_name&#39;] et l'affiche sur la sortie standard , puis utilise $_FILES[&#39;upload&#39;][&#39;tmp_name&#39;] pour Le fichier est copié dans le fichier log_copy.txt dans le répertoire actuel. 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.

Recommandations associées :

Méthode PHP d'appel du fichier asmx WebService de .Net via Soap

Méthode PHP d'appel de .Net Fichier asmx WebService via strace Méthodes pour localiser la cause du défaut

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Étiquettes associées:
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
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!