PHP檔案跨伺服器上傳

Jack2k發表於2021-09-09

PHP檔案上傳(從一臺伺服器上傳到另一個伺服器的儲存裡面)


php > 7.0.0

功能描述:
在客戶端上傳了一個檔案C到伺服器A,但是因為系統部署把儲存系統抽離單獨部署在了伺服器B上面(B上面的介面不對外暴露,客戶端不能直接呼叫B伺服器上的介面),這個時候需要把客戶端上傳的檔案呼叫B伺服器上的儲存介面進行儲存。

實現如下:
$file = $_FILES;//$this->post('files', '');
//#一系列檔案效驗...
$allowTypes = array('mp3', 'wma', 'm4a', 'flac','ape','wav');

//先把檔案上傳到伺服器A
$Uploader = new Ap_Util_Upload($file['files']);
//判讀是否上傳成功
if ( !$Uploader->upload()){return false;}
//獲取剛剛上傳的檔案資訊
$savedFiles  = $Uploader->getSaveInfo();

//準備往伺服器B上上傳
$param = array(
	//使用CURLFile進行上傳
	//php的版本不一樣CURLFile的使用方法可能不一樣,具體可以百度一下!!!
    'files[]' => new CURLFile(realpath($savedFiles[0]['path'])),
);
//curl - post上傳操作
$result = Ap_Api_Audio::request('/upload',$param);
//解析伺服器B返回的儲存資訊
$audio = json_decode($result,true);
//刪除伺服器A的檔案
unlink($savedFiles[0]['path']);
//返回儲存資訊給呼叫者
return $audio;

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/36/viewspace-2797911/,如需轉載,請註明出處,否則將追究法律責任。

相關文章