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!
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; ?>
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>
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( '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.
<br>