upload('image', $path); } public function uploadVideo($path) { return $this->upload('video', $path); } public function uploadVoice($path) { return $this->upload('voice', $path); } public function uploadThumb($path) { return $this->upload('thumb', $path); } public function upload(string $type, string $path) { if (!file_exists($path) || !is_readable($path)) { throw new WechatException(sprintf("File does not exist, or the file is unreadable: '%s'", $path)); } if (!in_array($type, $this->allowTypes, true)) { throw new WechatException(sprintf("Unsupported media type: '%s'", $type)); } return $this->httpUpload('cgi-bin/media/upload', ['media' => $path], ['type' => $type]); } }