Я изучал это некоторое время и не нашел ответа на это.
У меня есть сайт клиента, который звонит на наш сервер API. Что бы я хотел перенести на сайт клиента при специальном звонке.
У меня есть некоторый код, который загружает изображение с сервера, но это заставляет нас делать несколько звонков, заставляя нас создавать все эти изображения на сервере, которые мы не хотим сохранять, даже если мы их потом удалим.
$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();
}
Где $ originalFileUrl - текущее местоположение файла, а $ fileDestination - путь к моему новому файлу.
У меня вопрос: могу ли я сделать вызов файла PHP на сервере, который будет отвечать за создание, передачу и удаление всего изображения за один вызов, а не делать несколько вызовов?
Также по нескольким причинам ftp файл с сервера на клиент не является хорошим вариантом.
Спасибо