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
794 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!

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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal