public function sync($offset = 0) { if ($this->wxuser['winxintype'] < 3) { $this->error('没有权限'); } $material = new Material($this->wxuser); $params['post'] = json_encode(array('type' => 'image', 'offset' => $offset, 'count' => '10')); $result = $material->batchget($params); $dirname = '/uploads/' . substr($this->token, 0, 1) . '/' . $this->token . '/material/'; if ('local' == $this->upload_type) { $this->_mkdir('.' . $dirname); } $params['header'] = array('REFERER' => 'http://www.qq.com'); foreach ($result->item as $key => $value) { if (!empty($value->url)) { $file = D('Files')->where(array('sync_url' => $value->url, 'token' => $this->token))->find(); if (empty($file)) { $img = HttpClient::getInstance()->get($value->url, $params); $extension = pathinfo($value->name, PATHINFO_EXTENSION); $filename = $dirname . sha1($value->url) . '.' . $extension; if ('upyun' == $this->upload_type) { $upyun_pic = new UpYun(UNYUN_BUCKET, UNYUN_USERNAME, UNYUN_PASSWORD, $api_access[0]); try { $api_access = array(UpYun::ED_AUTO, UpYun::ED_TELECOM, UpYun::ED_CNC, UpYun::ED_CTT); $domain_pic = 'http://' . UNYUN_DOMAIN; $dir_pic = '/' . $this->token . '/material/' . sha1($value->url) . '.' . $extension; $upyun_pic->writeFile($dir_pic, $img, true); $filename = $domain_pic . $dir_pic; } catch (Exception $e) { echo json_encode(array('error' => 1, 'message' => $e->getCode() . ':' . $e->getMessage())); } } else { $size = file_put_contents('.' . $filename, $img); $filename = $this->siteUrl . $filename; } $Files = new Files(); $Files->index($filename, $size, $extension, $this->user['id'], $this->token, 0, $value->url, $value->media_id); } } } if (($offset + $result->item_count) < $result->total_count) { $this->success('正在同步 ' . $offset . ' - ' . ($offset + $result->item_count) . '张图片,请稍等...不要关闭此窗口', U('Upyun/sync', array('offset' => $offset + $result->item_count))); } else { $this->success('同步完成', U('Img/index')); } }