天天看点

php获取本地文件上传

二开云豹时遇到七牛云不好使的情况,也不知道是因为配置的问题还是云豹的七牛云版本问题,反正就是不行,于是自己另起一个站点作为七牛云的…因为实在不会这个π框架````

//图片转接上传七牛云
  public function getFile(){
    $datas = $this->request->param();
    $file = "文件路径";
    $key = "上传七牛云的文件名";

    header('Content-type:text/html; charset=utf-8'); //声明编码
    $ch = curl_init();
    
    $files = "文件的路径(不管绝对还是相对,能找到就行)";
    $url = 'http://xxx.com/xxx/xxx/xxx?key='.$key."&files=".$files;//下面那个方法的路径,传参请根据业务需要来

    $rr = curl_file_create($files);
    //post数据,使用@符号,curl就会认为是有文件上传
    $curlPost = array('image'=>$rr);
    curl_setopt($ch, CURLOPT_URL, $url);
    curl_setopt($ch, CURLOPT_HEADER, 1);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
    curl_setopt($ch, CURLOPT_POST, 1); //POST提交
    curl_setopt($ch, CURLOPT_POSTFIELDS,$curlPost);
    $data =curl_exec($ch);
    curl_close($ch);
  }
           
/**
   * 图片上传     上传到七牛云
   * @return String 图片的完整URL
   */
  public function qiniuUpload()
  {
	//七牛云怎么用就不赘述了,这就是正常的七牛云上传,主要地方在上一个方法

    $data = $this->request->param();
    $file = request()->file('image');
    $key = $data['key'];
    $files = $data['files'];

    // 要上传图片的本地路径
    $filePath = $file->getRealPath();
    $ext = pathinfo($file->getInfo('name'), PATHINFO_EXTENSION);  //后缀
    //获取当前控制器名称
    // $controllerName=$this->getContro();
    // 上传到七牛后保存的文件名
    require_once APP_PATH . '/../vendor/qiniu/autoload.php';
    // 需要填写你的 Access Key 和 Secret Key
    $accessKey = config('ACCESSKEY');
    $secretKey = config('SECRETKEY');
    // 构建鉴权对象
    $auth = new Auth($accessKey, $secretKey);
    // 要上传的空间
    $bucket = config('BUCKET');
    $domain = config('DOMAINImage');
    $token = $auth->uploadToken($bucket);
    // 初始化 UploadManager 对象并进行文件的上传
    $uploadMgr = new UploadManager();
    // 调用 UploadManager 的 putFile 方法进行文件的上传
    list($ret, $err) = $uploadMgr->putFile($token, $key, $filePath);

    if ($err !== null) {
      // return $this->info('10004','上传失败');
    } else {
    	//删除本地的文件
      if(file_exists($files)) {
        unlink($files);
      }
      // return $this->info('10000','上传成功',$data);
    }
    
  }
           

留作记录