code: func (material *Material) AddMaterial(mediaType MediaType, filename string) (mediaID string, url string, err error) {
  	if mediaType == MediaTypeVideo {
  		err = errors.New("永久视频素材上传使用 AddVideo 方法")
  	}
  	var accessToken string
  	accessToken, err = material.GetAccessToken()
  	if err != nil {
  		return
  	}
  
  	uri := fmt.Sprintf("%s?access_token=%s&type=%s", addMaterialURL, accessToken, mediaType)
  	var response []byte
  	response, err = util.PostFile("media", filename, uri)
  	if err != nil {
  		return
  	}
  	var resMaterial resAddMaterial
  	err = json.Unmarshal(response, &resMaterial)
  	if err != nil {
  		return
  	}
  	if resMaterial.ErrCode != 0 {
  		err = fmt.Errorf("AddMaterial error : errcode=%v , errmsg=%v", resMaterial.ErrCode, resMaterial.ErrMsg)
  		return
  	}
  	mediaID = resMaterial.MediaID
  	url = resMaterial.URL
  	return
  }
docs: //AddMaterial 上传永久性素材（处理视频需要单独上传）