code: public function upload($url, array $files = [], array $params = [], array $queries = [])
      {
          $multipart = [];
  
          foreach ($files as $name => $file) {
              $paths = is_array($file) ? $file : [$file];
  
              foreach ($paths as $path) {
                  $multipart[] = [
                      'name' => $name,
                      'contents' => FileConverter::getContent($path)
                  ];
              }
          }
  
          foreach ($params as $name => $contents) {
              $multipart[] = compact('name', 'contents');
          }
  
          return $this->request('POST', $url, ['multipart' => $multipart, 'query' => $queries]);
      }
docs: Update
  
  @param  string $url
  @param  array  $params
  
  @return \Psr\Http\Message\ResponseInterface