Maison >développement back-end >tutoriel php >PHP implémente la fonction de téléchargement de fichiers via CURL
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!
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; ?>
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['upload']['tmp_name']); copy($_FILES['upload']['tmp_name'], "./log_copy.txt"); ?>
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 l'affiche sur la sortie standard , puis utilise $_FILES['upload']['tmp_name']
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( 'upload' => array( 'name' => 'log.txt', 'type' => 'application/octet-stream', 'tmp_name' => '/tmp/phpLUB59F', 'error' => 0, 'size' => 36, ) ) this is a file for test hello PythonTab!
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
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!