我一直在研究這一段時間,並沒有找到答案。PHP cURL發送和接收圖像客戶端/服務器
我有一個客戶站點調用我們的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文件從服務器到客戶端不是一個好的選擇。
謝謝