使用curl做上传文件处理(结合file服务)

贴上一段宝贵的代码

/**上传文件到本服务*/
  global $config;
  $uploaddir  =  $config['global']['upload_dir'];
  $uniqueid = uniqid();  
  $filename = $_FILES['userfile']['name'];  
  $exname  = strtolower(substr($filename, strrpos($filename,"."))); //后缀  
  $uploadfile = $uploaddir.$uniqueid.$exname;  
  
  /**End*/
  
  $exname  = strtolower($exname);
  

//格式判断  
  if($exname !='.jpg' && $exname !='.gif' && $exname !='.png')
  {
   $rs   =  array(
      'success' =>  false,
      'message'  =>  "上传文件失败 ,请选择 jpg 或gif 或png 格式的图片。",
      'fileurl' =>  null
       );   
  }else
  {    
    

//切割图片处理
   move_uploaded_file($_FILES['userfile']['tmp_name'], $uploadfile); 
   $file    = $uploadfile;
   $smalluploadfile = $uploaddir.'s'.$uniqueid.$exname;   
   makeThumb($file, $smalluploadfile, 82, 82, 1|8, 1, 0, 0); 
   
   unlink($uploadfile);
   
   if(file_exists($smalluploadfile))
   {   

//开始利用curl处理上传的文件(交给'http://file.sohu.com/file/upit进行处理)
    $url      =  'http://file.sohu.com/file/upit';  //target url
    $fields['userfile'] =  '@'.realpath($smalluploadfile);     
    $fields['owner']  =  $_POST['owner'];    
    
    $ch = curl_init();
    curl_setopt($ch, CURLOPT_DNS_USE_GLOBAL_CACHE,false );   // 和php5.2有关的一个问题
    curl_setopt($ch, CURLOPT_URL, $url);
    curl_setopt($ch, CURLOPT_POST, 1);
    curl_setopt($ch, CURLOPT_HEADER, 1);
    curl_setopt($ch, CURLOPT_POSTFIELDS, $fields );
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);//不直接输出,返回到变量
    
    $headers = curl_exec ($ch);       //可以将header打印出来调试
    $result  = headerCurlJson($headers);    对返回出来的header结果进行处理
        
    unlink($smalluploadfile);    //删除
    
    if (true == $result->success)
    {
     $rs =  array(
        'success'   =>  true,
        'message'    =>  "上传文件成功。",
        'fileurl'   =>  $result->fileurl
        );
        $this  ->  loadModel('UcpModel');
     $flag   =  UcpModel::setPhoto(array(
     'username'  =>  $_POST['owner'],
     'userphoto' =>  $result->fileurl
     ));
    } else
    { 
      $rs =  array(
        'success'   =>  false,
        'message'    =>  "上传文件失败...",
        'fileurl'   =>  ''
        );    
    }  
    curl_close ($ch);
     
   }else
   {
     $rs =  array(
        'success'   =>  false,
        'message'    =>  "上传文件失败了...",
        'fileurl'   =>  ''
        );
   }
  }
  

//将处理的结果给viewimages.php页面进行显示处理
  $this  -> loadView('viewimages', array(
  'result' =>  $rs
  ));

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值