php 一台服务器传图片到另一台上 curl post file_get_contents保存图片

1 篇文章 0 订阅
1 篇文章 0 订阅

在做小程序 上传图片到B服务器。但是B服务器上协议是http的。所以有个中转服务器A

小程序上传图片->A服务器->B服务器

网上找的答案太水了,试了都不成功了。也是很无语了。

小程序里上传图片chooseImage

wx.uploadFile({

url: app.globalData.baseUrl + 'uploadUseravatar', //A服务器接口

filePath: tempFilePaths[0],//图片路径 

name: 'file',

formData: {

uid: uid,//其他参数

openid: openid,//其他参数

link: link //其他参数

},

header: {

"Content-Type": "multipart/form-data"

},

 

 

A服务器接收图片:

$request = new Request();
$file  = $request->file('file');
$info = $file->move(ROOT_PATH . 'uploads/avatar',"file.png");//将图片保存在服务器根下/uoloads/avatar文件夹下
$filename=$info->getSaveName();//文件名
$path= 'https:/AA.cn/uploads/avatar/'.$filename;//图片在A服务器上的访问路径
$geturl="http://BB.CN/rest?method=base.user.saveAvatar";//B服务器上接收图片接口
$post_data = array(
    "uid" => $uid,
    "upload" => $path,//文件路径
    "filename"=>$filename,文件名称
);
header("Access-Control-Allow-Origin: *");
$curl = curl_init();
curl_setopt($curl, CURLOPT_URL, $geturl);
curl_setopt($curl, CURLOPT_HEADER, 0);//不抓取头部信息。只返回数据
curl_setopt($curl, CURLOPT_TIMEOUT, 20);//超时设置
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);//1表示不返回bool值
curl_setopt($curl, CURLOPT_POST, 1);
curl_setopt($curl, CURLOPT_POSTFIELDS, $post_data);
$data = curl_exec($curl);
if (curl_errno($curl)) {
    return curl_error($curl);
}
curl_close($curl);

B服务器接收图片

$filepath=input('upload','');//图片绝对路径
$filename=input('filename','');//图片名称
$model = model('edu/Student');
$savepath = "./";B服务器上保存路径

$mao=file_get_contents($filepath);
$res=file_put_contents($savepath,$mao);

重要解决这个需求 了。开心

 

 

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值