Maison  >  Article  >  développement back-end  >  Comment télécharger des fichiers via cURL en PHP ?

Comment télécharger des fichiers via cURL en PHP ?

Susan Sarandon
Susan Sarandonoriginal
2024-11-07 13:42:03907parcourir

How to Upload Files via cURL in PHP?

Téléchargement de fichiers via cURL en PHP

Problème

Gestion des téléchargements de fichiers à partir d'un formulaire POST en PHP et les envoyer en utilisant cURL peut être difficile. Le formulaire HTML utilise le codage multipart/form-data, mais le format exact de téléchargement de fichiers dans une requête cURL reste flou.

Solution

Pour télécharger des fichiers à l'aide de cURL en PHP, suivez ces étapes :

Création de la requête cURL

<?php
// Define the file to be uploaded
$fileKey = 'image';
$tmpFile = $_FILES[$fileKey]['tmp_name'];
$fileName = $_FILES[$fileKey]['name'];

// Initialize cURL
$ch = curl_init();

// Set cURL options
curl_setopt_array($ch, [
    CURLOPT_URL => 'https://your-api-endpoint.com', // Replace with your API endpoint
    CURLOPT_USERPWD => 'username:password', // Replace with your API credentials
    CURLOPT_UPLOAD => true,
    CURLOPT_INFILE => fopen($tmpFile, 'r'), // Open the file for reading
    CURLOPT_INFILESIZE => filesize($tmpFile),
]);

**Sending the Request**

// Execute the cURL request
$response = curl_exec($ch);

if (curl_errno($ch)) {
    echo 'Error sending file: ' . curl_error($ch);
} else {
    // Handle the response
    echo 'File uploaded successfully.';
}

// Close the cURL connection
curl_close($ch);
?>

Réception du fichier

Pour la réception script (curl_receiver.php), vous pouvez utiliser le code suivant :

<?php
// Get the file data
$file = fopen('php://input', 'rb');

// Save the file to a temporary location
$tempFile = tempnam(sys_get_temp_dir(), 'file');
file_put_contents($tempFile, $file);

// Do something with the file
// ...

// Clean up
fclose($file);
unlink($tempFile);
?>

En suivant ces étapes, vous pouvez réussir à télécharger des fichiers à partir d'un formulaire POST en PHP en utilisant cURL.

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