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

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

DDD
DDDoriginal
2024-11-07 09:09:02295parcourir

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

Téléchargement de fichiers PHP Curl à partir du formulaire POST

Le téléchargement de fichiers avec des formulaires POST peut être difficile, en particulier lors de l'utilisation de cURL côté serveur. Pour résoudre ce problème, envisagez l'approche suivante :

Implémentation de cURL côté serveur

Pour gérer les téléchargements de fichiers et les envoyer via cURL, vous pouvez utiliser le superglobal $_FILES de PHP, qui fournit des informations sur les fichiers téléchargés. Voici un extrait de code qui illustre le processus :

if (isset($_POST['upload'])) {
    $fileKey = 'image'; // Assuming your file input has 'image' as its name

    // Retrieve file information
    $tmpFile = $_FILES[$fileKey]['tmp_name'];
    $fileName = $_FILES[$fileKey]['name'];

    // Prepare cURL parameters
    $postFields = ['file' => '@' . $tmpFile, /* Other post parameters if needed */];
    $url = 'https://example.com/curl_receiver.php'; // URL to send the file to

    // Initialize and configure cURL
    $ch = curl_init();
    curl_setopt($ch, CURLOPT_URL, $url);
    curl_setopt($ch, CURLOPT_POST, true);
    curl_setopt($ch, CURLOPT_POSTFIELDS, $postFields);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);

    // Execute cURL request
    $result = curl_exec($ch);

    // Handle cURL response
    if (curl_errno($ch)) {
        // Handle error
    } else {
        // Success, do further processing with $result
    }

    // Close cURL connection
    curl_close($ch);
}

Réception du script (curl_receiver.php)

<?php
// Handle incoming POST data
if (!empty($_FILES)) {
    // Retrieve file information
    $tmpFile = $_FILES['file']['tmp_name'];
    $fileName = $_FILES['file']['name'];

    // Process and save the uploaded file
    // ...

    // Send response to the client
    echo json_encode(['status' => 'success']);
} else {
    // Handle error, no file uploaded
    echo json_encode(['status' => 'error', 'message' => 'No file uploaded']);
}
?>

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