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

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

Linda Hamilton
Libérer: 2024-11-09 17:08:02
original
893 Les gens l'ont consulté

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

Envoyer un fichier via cURL depuis un formulaire POST en PHP

Lors de la gestion des téléchargements de fichiers à partir d'un formulaire POST en PHP, il est essentiel de comprendre comment utilisez cURL pour envoyer le fichier. Le balisage du formulaire comprend généralement un champ de saisie de fichier avec enctype="multipart/form-data".

Pour envoyer un fichier à l'aide de cURL avec une requête POST, utilisez l'approche suivante :

  1. Récupérer le chemin du fichier : Utilisez $_FILES'image' pour obtenir le chemin du fichier temporaire sur le serveur.
  2. Préparez les paramètres cURL : Construisez un tableau avec les détails du fichier. Par exemple :
$post = array(
    'image' => '@' . $_FILES['image']['tmp_name']
);
Copier après la connexion
  1. Initialiser cURL :

    $ch = curl_init();
    Copier après la connexion
  2. Définir cURL options :

    curl_setopt($ch, CURLOPT_URL, 'http://example.com/curl_receiver.php');
    curl_setopt($ch, CURLOPT_POSTFIELDS, $post);
    Copier après la connexion
  3. Exécuter la requête :

    curl_exec($ch);
    Copier après la connexion
  4. Fermer cURL :

    curl_close($ch);
    Copier après la connexion

Sur le côté réception, un script comme curl_receiver.php peut recevoir le fichier :

if (isset($_FILES['image'])) {
    move_uploaded_file($_FILES['image']['tmp_name'], 'uploads/'.$_FILES['image']['name']);
}
?>
Copier après la connexion

Exemple :

Formulaire :

<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

Script ( script.php):

if (isset($_POST['upload'])) {
    $ch = curl_init();
    curl_setopt($ch, CURLOPT_URL, 'http://example.com/curl_receiver.php');
    curl_setopt($ch, CURLOPT_POSTFIELDS, array(
        'image' => '@' . $_FILES['image']['tmp_name']
    ));
    curl_exec($ch);
    curl_close($ch);
}
Copier après la connexion

Script du récepteur (curl_receiver.php) :

if (isset($_FILES['image'])) {
    move_uploaded_file($_FILES['image']['tmp_name'], 'uploads/'.$_FILES['image']['name']);
}
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