上传文件到其他服务器

mac2024-03-29  34

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

这里使用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)