J'ai fait des recherches sur ce sujet depuis un certain temps et je n'ai pas trouvé de réponse pour cela.PHP cURL envoyer et recevoir des images Client/Serveur
J'ai un site client qui appelle votre serveur API. Ce que je voudrais transférer une image sur le site client lors d'un appel spécial. J'ai un code qui télécharge l'image à partir du serveur, mais cela nous amène à faire plusieurs appels nous forçant à créer toutes ces images dans le serveur que nous ne voulons pas conserver, même si nous les supprimons par la suite .
$originalFileUrl = createImage('createImage', $fileName);
downloadImage($originalFileUrl, $fileDestination);
deleteFileFromServer('deleteImage', $fileName);
function serverCall ($action, $fileName) {
$serverCall = $SERVER.'/api.php?fileName=' . $fileName . '&action=' . $action;
ob_start();
$ch = curl_init();
$timeout = 5;
curl_setopt ($ch, CURLOPT_URL, $serverCall);
curl_setopt ($ch, CURLOPT_RETURNTRANSFER, 0);
curl_setopt ($ch, CURLOPT_CONNECTTIMEOUT, $timeout);
curl_exec($ch);
$fileContents = ob_get_contents();
curl_close($ch);
ob_end_clean();
return $fileContents;
}
function downloadImage ($originalFileUrl, $fileDestination) {
// Starting output buffering
ob_start();
// create a new CURL resource
$ch = curl_init();
// set URL and other appropriate options
curl_setopt($ch, CURLOPT_URL, $originalFileUrl);
curl_setopt($ch, CURLOPT_HEADER, false);
curl_setopt($ch, CURLOPT_BINARYTRANSFER, true);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
// set timeouts
set_time_limit(30); // set time in secods for PHP
curl_setopt($ch, CURLOPT_TIMEOUT, 30); // and also for CURL
// open a stream for writing
$outFile = fopen($fileDestination, 'wb');
curl_setopt($ch, CURLOPT_FILE, $outFile);
// grab file from URL
curl_exec($ch);
fclose($outFile);
// close CURL resource, and free up system resources
curl_close($ch);
ob_end_clean();
}
Où $ originalFileUrl est l'emplacement actuel du fichier, et fileDestination $ est le chemin où je veux que mon nouveau fichier soit.
Ma question est: Puis-je faire un appel à un fichier PHP dans le serveur qui sera chargé de créer, transférer et supprimer l'image tout en un appel plutôt que de faire plusieurs appels?
Aussi pour plusieurs raisons ftp le fichier du serveur au client n'est pas une bonne option.
Merci