code: func (rc *RequestConfig) SetFileFromPath(uploads []UploadFile, params ...H) *RequestConfig {
  	body := new(bytes.Buffer)
  	writer := multipart.NewWriter(body)
  
  	for _, f := range uploads {
  		reader := bytes.NewReader(f.Content)
  		if reader.Size() == 0 {
  			file, err := os.Open(f.Path)
  			if err != nil {
  				log.Fatal(err)
  			}
  
  			defer file.Close()
  			part, err := writer.CreateFormFile(f.Name, filepath.Base(f.Path))
  			if err != nil {
  				log.Fatal(err)
  			}
  			_, err = io.Copy(part, file)
  			if err != nil {
  				log.Fatal(err)
  			}
  		} else {
  			part, err := writer.CreateFormFile(f.Name, filepath.Base(f.Path))
  			if err != nil {
  				log.Fatal(err)
  			}
  			_, err = reader.WriteTo(part)
  			if err != nil {
  				log.Fatal(err)
  			}
  		}
  	}
  
  	if len(params) > 0 {
  		for key, val := range params[0] {
  			_ = writer.WriteField(key, val)
  		}
  	}
  
  	err := writer.Close()
  	if err != nil {
  		log.Fatal(err)
  	}
  
  	rc.ContentType = writer.FormDataContentType()
  	rc.Body = body.String()
  
  	return rc
  }
docs: // SetFileFromPath upload new file.