Maison > Article > développement back-end > Comment télécharger des fichiers à l'aide de cURL à partir d'un formulaire HTML POST en PHP ?
Cette question traite de la gestion des téléchargements de fichiers à partir d'une requête POST de formulaire via cURL. Le balisage du formulaire est simple :
<form action="" method="post" enctype="multipart/form-data"> <input type="file" name="image">
Pour gérer les téléchargements de fichiers côté serveur, vous devez utiliser la variable globale $_FILES de PHP. Cette variable contiendra un tableau d'informations sur les fichiers téléchargés, y compris leurs noms de fichiers temporaires et les noms de fichiers d'origine.
L'extrait de code suivant montre comment utiliser $_FILES pour obtenir des informations sur l'image téléchargée :
if (isset($_POST['upload'])) { $tmpFileName = $_FILES['image']['tmp_name']; $originalFileName = $_FILES['image']['name']; }
Pour envoyer le fichier via cURL, vous devez spécifier l'option CURLOPT_INFILE et la définir sur le nom de fichier temporaire. Vous devez également définir l'option CURLOPT_UPLOAD sur 1. Par exemple :
$curl = curl_init(); curl_setopt($curl, CURLOPT_URL, "http://example.com/upload.php"); curl_setopt($curl, CURLOPT_POST, 1); curl_setopt($curl, CURLOPT_INFILE, $tmpFileName); curl_setopt($curl, CURLOPT_UPLOAD, 1); $curlResult = curl_exec($curl); curl_close($curl);
Sur le serveur de réception, vous pouvez utiliser le code suivant pour recevoir le fichier téléchargé :
<?php // Get the file from the request $file = file_get_contents('php://input'); // Save the file to a temporary location $tmpFileName = tempnam(sys_get_temp_dir(), 'phpexec'); file_put_contents($tmpFileName, $file); // You can now process the file as needed // Delete the temporary file unlink($tmpFileName); ?>
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!