Maison  >  Article  >  développement back-end  >  Comment télécharger des fichiers à l'aide de cURL à partir d'un formulaire HTML POST en PHP ?

Comment télécharger des fichiers à l'aide de cURL à partir d'un formulaire HTML POST en PHP ?

Mary-Kate Olsen
Mary-Kate Olsenoriginal
2024-11-10 14:09:02334parcourir

How to Upload Files Using cURL from a HTML Form POST in PHP?

Téléchargement de fichiers via cURL à partir d'un formulaire POST en PHP

Présentation

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">

Gestion des téléchargements de fichiers sur le serveur

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'];
}

Envoi du fichier via cURL

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);

Réception du fichier sur le serveur

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!

Déclaration:
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