thinkphp5.1上传图片到远程服务器

这篇博客介绍了如何在ThinkPHP5.1框架下实现从A端后台上传图片到远程服务器的完整过程,包括文件名生成、通过cURL发送请求以及B端后台接收并保存图片的代码实现。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 

A端后台代码

header("Content-type: text/html; charset=utf-8");
        $file = request()->file('file');
        $sourceid=input("sourceid/d","0");
        $typeid=input("stypeid/d");
        $advid=session("user.id");
        $token=input("token/s","");
        //文件地址
        //生成文件名字
        $len=10;
        $chars='ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789abcdefghijklmnopqrstuvwxyz'; // characters to build 
        $string=''; 
        for(;$len>=1;$len--) 
        { 
        $position=rand()%strlen($chars); 
        $string.=substr($chars,$position,1); 
        } 
        $names=$string.".".strtolower(pathinfo($file->getInfo('name'), 4));
        $path_name=session("user.id")."_".$sourceid."_".$names;
        /*********************************通过curl 上传图片到js数据处理服务器******************************/
          $jsdata_url=sysconf('admaster_address')."/show/uploade/uploadeimg";//访问的地址
          $cfile=  curl_file_create($file->getInfo('tmp_name'),$file->getInfo('type'),$path_name);//上传的图片
           // 设置 POST 数据
          $remoteData =[
               'file'=>$cfile,
          ];
          $curl = curl_init();
          curl_setopt($curl, CURLOPT_URL, $jsdata_url);
          curl_setopt($curl, CURLOPT_TIMEOUT, 30);
          curl_setopt($curl, CURLOPT_POST, 1);
          curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
          curl_setopt($curl, CURLOPT_POSTFIELDS, $remoteData);
          $response = curl_exec($curl);
          curl_close($curl);

          if($response==100){
             $this->success("上传成功","");
          }else{
            $this->error("上传失败");
          }

 

 

B端后台代码

public function uploadeimg(){
            $file = $_FILES['file'];//图片文件
            $tmp = $file['tmp_name'];
            //$path = $_FILES['path'];
            $path_all=$file['name'];
            $path_all=explode("_", $path_all);
            $path="{$this->adv_source_img}/".$path_all['0']."/".$path_all['1'];
            if (! file_exists ($path)) {
                mkdir ($path, 0777, true );
            }
            $filepath = "{$path}/".$path_all['2'];
            if(move_uploaded_file($tmp,$filepath)){
                //可以将图片相关信息保存到数据库   这里你也可以直接上传到一些当下比较好用的存储服务商,像七牛云等。也是非常方便
                echo 100; //成功
            }else{
               echo 200;//失败
            }
   }

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值