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

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

Linda Hamilton
Libérer: 2024-11-09 09:16:02
original
681 Les gens l'ont consulté

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>
Copier après la connexion

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
}
Copier après la connexion

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);
Copier après la connexion

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);
Copier après la connexion

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!

source:php.cn
Déclaration de ce site Web
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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal