Maison  >  Article  >  développement back-end  >  Comment envoyer un fichier via cURL depuis un formulaire PHP POST ?

Comment envoyer un fichier via cURL depuis un formulaire PHP POST ?

Linda Hamilton
Linda Hamiltonoriginal
2024-11-09 09:16:02670parcourir

How to Send a File via cURL from a PHP Form POST?

Envoyer un fichier via cURL à partir du formulaire POST en PHP

La gestion des téléchargements de fichiers à partir de publications de formulaire est une tâche courante dans le développement d'API. Cette question explore comment envoyer un fichier via cURL à l'aide d'un script PHP.

Le formulaire HTML comprend un champ de saisie de téléchargement de fichier :

<form action="script.php" method="post" enctype="multipart/form-data">
  <input type="file" name="image">
  <input type="submit" name="upload" value="Upload">
</form>

Le script PHP côté serveur (script.php ) vérifie d'abord si le bouton "upload" a été cliqué :

if (isset($_POST['upload'])) {
  // Handle file upload with cURL
}

Pour envoyer le fichier avec cURL, nous devons définir les paramètres suivants :

  • CURLOPT_URL : L'URL de la destination de téléchargement de fichier distant
  • CURLOPT_UPLOAD : 1 (Indique que la requête contient un téléchargement de fichier)
  • CURLOPT_INFILE : Le pointeur de fichier du fichier temporaire téléchargé sur le serveur
  • CURLOPT_INFILESIZE : La taille du fichier en octets

Voici un exemple d'extrait de code cURL qui envoie le fichier :

$localFile = $_FILES['image']['tmp_name']; 
$url = "https://example.com/file_upload.php";

$ch = curl_init($url);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, array('file' => '@' . $localFile);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$result = curl_exec($ch);
curl_close($ch);

Du côté de la réception, le script doit gérer le téléchargement du fichier et stockez-le en conséquence. Voici un exemple :

$file = $_FILES['file'];
$fileName = $file['name'];
$fileTmpName = $file['tmp_name'];
move_uploaded_file($fileTmpName, '/path/to/uploads/' . $fileName);

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