Le contenu de cet article explique comment PHP utilise curl pour simuler les formulaires du navigateur pour télécharger des fichiers et des images. Il a une certaine valeur de référence. Les amis dans le besoin peuvent s'y référer.
Avant-propos
Nous pouvons télécharger des fichiers en utilisant la zone de saisie en HTML dans le navigateur. L'élément de formulaire utilise le contrôle set enctype= attribut "multipart/form-data". Par exemple :
<body> <form action="UploadFile.php" method="post" enctype="multipart/form-data"> <input type="file" name="fileUpload" /> <input type="submit" value="上传文件" /> </form> </body>
Il y a toujours des moments où nous devons télécharger des fichiers directement en arrière-plan au lieu d'utiliser le navigateur pour télécharger des fichiers sur le front-end. À l'heure actuelle, le curl de PHP fournit certains paramètres à télécharger. fichiers directement via l’arrière-plan PHP.
php utilise curl pour simuler le téléchargement de fichiers
Lorsque curl télécharge des fichiers, la chose la plus importante est l'application du symbole "@". L'ajout du symbole @ va curl. il Traitez-le comme un téléchargement de fichier.
Exemple de code spécifique :
<?php header('Content-type:text/html; charset=utf-8'); //声明编码 $ch = curl_init(); $url = 'https://xxx.com/api/mobile/auto_upload.php?uid=9705459'; //post数据,使用@符号,curl就会认为是有文件上传 $curlPost = array('Filedata'=>'@/Users/finup/Documents/11.png'); curl_setopt($ch, CURLOPT_URL, $url); curl_setopt($ch, CURLOPT_HEADER, 1); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); curl_setopt($ch, CURLOPT_POST, 1); //POST提交 curl_setopt($ch, CURLOPT_POSTFIELDS,$curlPost); $data =curl_exec($ch); curl_close($ch); echo '<pre class="brush:php;toolbar:false">'; var_dump($data);
L'URL dans l'exemple de code ci-dessus est une interface spécifique pour traiter les téléchargements de fichiers. Vous pouvez directement utiliser $_FILES pour obtenir des informations sur les fichiers temporaires téléchargés et les imprimer. $_FILES est le suivant, où le nom de la clé du tableau "Filedata" peut être spécifié par vous-même lors du passage des paramètres :
Array ( [Filedata] => Array ( [name] => 11.png [type] => application/octet-stream [tmp_name] => /private/var/tmp/php936cex [error] => 0 [size] => 36663 ) )
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!