web-dev-qa-db-fra.com

Comment envoyer un fichier par wp_remote_post?

Je ne veux pas de cURL dans mon plugin WordPress

Bonjour, cURL n’est pas sûr à utiliser sur le site WordPress. Et parfois, cURL a été désactivé sur l'hébergement des clients.

Et j'ai décidé d'utiliser wp_remote_post pour envoyer un fichier pour mon plugin

Voici mon code:

$service = URL SERVICE ;

 $headers = array(
            'accept'       => 'application/json', // The API returns JSON
            'content-type' => 'application/binary', // Set content type to binary
        );


$data     = array(
                'headers'  => $headers,
                'body'     => file_get_contents($image_file),
            );
$response = wp_remote_post($service, $data);

Mais sur le serveur, je ne peux pas recevoir le fichier de wp_remote_post. S'il vous plaît aidez-moi à résoudre ce problème? Comment je peux config pour envoyer le fichier de wp_remote_post identique à CURLFile?

1
Trungthanh.hust

J'ai trouvé une solution à ce problème, en utilisant wp_remote_post pour envoyer le fichier binaire du fichier au serveur.

Lors du traitement des données reçues sur le serveur, j'utilise ce code pour obtenir les données du fichier

$file = file_get_contents('php://input');

Et je l'écris dans un fichier temporaire

$temp   = tmpfile();
fwrite($temp, $file);
$metadata = stream_get_meta_data($temp);

Avez-vous une autre solution? S'il vous plaît discuter avec moi pour trouver les meilleures réponses.

0
Trungthanh.hust