上传文件到其他服务器

在开发商城项目中,商城的展示端是一个服务器,只存储部分商品且所有商品信息都是从另一个服务器中获取的。所以有时编辑商品需要将数据保存到总商品的服务器中,其他的商品信息都能直接保存,图片需要先上传到商品服务器中,获取路径在将图片路径保存到商品服务器中。

这里使用curl来进行上传。注:上传的图片需要使用完整的路径

$target = "D:\image.jpg";           //上传的图片的完整路径
$curl = curl_init();                 //初始化curl
$post_data = array(                      
    "download" => new CURLFile($target)       //这个写法是php5.5之后的版本写法,将图片当做上传资源
);
curl_setopt($curl, CURLOPT_URL, TRAN_URL."/admin.php?s=/file/uploadPicture");    //上传的接口
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, FALSE);
curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, FALSE);         //访问HTTPS时不检查ssl证书
curl_setopt($curl, CURLOPT_POST, 1);                       //post提交
curl_setopt($curl, CURLOPT_POSTFIELDS, $post_data);
$result = curl_exec($curl);
curl_close($curl);                      //关闭
print_r($result);

接收端

function uploadPicture(){  
	 if($_FILES){
		$file = $_FILES['download'];		//可以直接获取图片的上传信息
	   	$upload = array(
	       'type'  =>  $file['type'],
	       'name'  =>  $file['name'],
	       'file'  =>  $file['tmp_name'],
	  	 );
	 	$info   = $Upload->upload($upload);    //再根据商品服务器中的上传方式上传即可
   	 }
}

这之前有个问题,就是不能把图片当做一个上传资源传到服务器中,导致没办法去使用原来商品图片的上传方式

$post_data = array('download'=>'@D:\image.jpg'); 
 //之前使用的方式,但它只适用于5.5版本之前的,所以在接口那边一直获取不到上传资源
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值