public function upload_file_by_content($bucket, $object, $options = null) { //options $this->validate_options($options); if (!$options) { $options = array(); } //bucket $this->is_empty($bucket, OSS_BUCKET_IS_NOT_ALLOWED_EMPTY); //object $this->is_empty($object, OSS_OBJECT_IS_NOT_ALLOWED_EMPTY); //内容校验 $this->validate_content($options); $objArr = explode('/', $object); $basename = array_pop($objArr); $extension = explode('.', $basename); $extension = array_pop($extension); $content_type = MimeTypes::get_mimetype(strtolower($extension)); $options[self::OSS_BUCKET] = $bucket; $options[self::OSS_METHOD] = 'PUT'; $options[self::OSS_OBJECT] = $object; if (!isset($options[self::OSS_LENGTH])) { $options[self::OSS_CONTENT_LENGTH] = strlen($options[self::OSS_CONTENT]); } else { $options[self::OSS_CONTENT_LENGTH] = $options[self::OSS_LENGTH]; } if (!isset($options[self::OSS_CONTENT_TYPE]) && isset($content_type) && !empty($content_type)) { $options[self::OSS_CONTENT_TYPE] = $content_type; } $response = $this->auth($options); return $response; }
private function upload($data) { $data = explode('|', $data); $ch = curl_init($data[1]); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 5); curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); $img = curl_exec($ch); $info = curl_getinfo($ch); if (curl_errno($ch) > 0) { curl_close($ch); echo "{$data[1]} | {$data[0]} Failed \n"; return; } curl_close($ch); require_once APP_DIR . 'vendors/objectstorage/sdk.class.php'; require_once APP_DIR . 'vendors/objectstorage/util/oss_util.class.php'; $oss = new \ALIOSS(OSS_ACCESS_ID, OSS_ACCESS_KEY, OSS_ENDPOINT); $object = "avatar/{$data[0]}"; $content = $img; $options = array('Content-Type' => $info['content_type'], 'content' => $content, 'length' => strlen($content)); $res = $oss->upload_file_by_content(OSS_TEST_BUCKET, $object, $options); \OSSUtil::print_res($res, "{$data[1]} | {$data[0]}"); if (!$this->user->update(['avatar' => time()], ['uid' => $data[0]])) { echo " database updated failed. \n"; } }