PHP文件跨服务器上传

PHP文件上传(从一台服务器上传到另一个服务器的存储里面)


php > 7.0.0

功能描述:
在客户端上传了一个文件C到服务器A,但是因为系统部署把存储系统抽离单独部署在了服务器B上面(B上面的接口不对外暴露(只对A指定服务器暴露,也就是说只能A去调用),客户端不能直接调用B服务器上的接口),这个时候需要把客户端上传的文件通过A来调用B服务器上的存储接口进行存储。大致是这样:C --> A --> 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;

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,以下是一个PHP 编写的服务器备份脚本示例: ```php <?php // 源服务器信息 $source_host = '源服务器地址'; $source_user = '源服务器用户名'; $source_pass = '源服务器密码'; $source_dir = '源服务器备份目录'; // 目标服务器信息 $target_host = '目标服务器地址'; $target_user = '目标服务器用户名'; $target_pass = '目标服务器密码'; $target_dir = '目标服务器备份存储目录'; // 连接源服务器 $source_conn = ftp_connect($source_host); ftp_login($source_conn, $source_user, $source_pass); ftp_pasv($source_conn, true); // 连接目标服务器 $target_conn = ftp_connect($target_host); ftp_login($target_conn, $target_user, $target_pass); ftp_pasv($target_conn, true); // 获取源服务器备份文件列表 $files = ftp_nlist($source_conn, $source_dir); // 遍历备份文件列表 foreach ($files as $file) { // 下载备份文件到本地 $local_file = basename($file); ftp_get($source_conn, $local_file, $file, FTP_BINARY); // 上传备份文件到目标服务器 ftp_put($target_conn, $target_dir . '/' . $local_file, $local_file, FTP_BINARY); // 删除本地备份文件 unlink($local_file); } // 关闭连接 ftp_close($source_conn); ftp_close($target_conn); echo '备份完成'; ``` 这个脚本使用 FTP 协议连接源服务器和目标服务器,遍历源服务器备份目录中的文件列表,将每个备份文件下载到本地,然后上传到目标服务器备份存储目录中。最后关闭连接并输出备份完成信息。你可以根据需要修改服务器信息和备份目录等参数。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值