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;