저는 잠시 동안 이것을 연구 해왔고 이에 대한 답을 찾지 못했습니다.PHP cURL 이미지 송수신 클라이언트/서버
API 서버를 호출하는 클라이언트 사이트가 있습니다. 특별한 전화가 걸려 올 때 이미지를 클라이언트 사이트로 전송하고 싶습니다.
서버에서 이미지를 다운로드하는 몇 가지 코드가 있지만 이로 인해 이후에 이미지를 삭제하더라도 보관하지 않으려는 이미지가 서버에 여러 번 생성 될 수 있습니다 . $ originalFileUrl 현재 파일의 위치 및 $ fileDestination입니다
$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();
}
내가 내 새 파일이 원하는 위치로 경로입니다.
제 질문은 서버에서 여러 번 호출하는 대신 이미지를 만들고, 전송하고, 삭제하는 PHP 파일을 호출 할 수 있습니까?
또한 여러 가지 이유로 ftp 서버에서 클라이언트로 파일을 좋은 옵션이 아닙니다.
고맙습니다.