Ta sekcja przedstawia metody wgrywania i pobierania plików za pomocą biblioteki Go Resty.

Wieloczęściowe Przesyłanie Plików

Wgrywanie plików za pomocą żądania Multipart POST

// Najpierw odczytaj dwa pliki
profileImgBytes, _ := os.ReadFile("/Users/jeeva/test-img.png")
notesBytes, _ := os.ReadFile("/Users/jeeva/text-file.txt")

// Utwórz klienta Resty
client := resty.New()

// Użyj SetFileReader, aby automatycznie ustawić plik i parametry do przesyłania
// Użyj SetFormData, aby ustawić inne parametry formularza
resp, err := client.R().
      SetFileReader("profile_img", "test-img.png", bytes.NewReader(profileImgBytes)).
      SetFileReader("notes", "text-file.txt", bytes.NewReader(notesBytes)).
      SetFormData(map[string]string{
          "first_name": "Jeevanandam",
          "last_name": "M",
      }).
      Post("http://www.tizi365.com/upload")

Bezpośrednie Przesyłanie Lokalnych Plików

Jest to wygodniejsze niż powyższe, ponieważ umożliwia bezpośrednie przesyłanie lokalnych plików bez konieczności wcześniejszego odczytywania pliku.

// Utwórz klienta Resty
client := resty.New()

// Użyj SetFile, aby ustawić przesyłany plik i pole związane z żądaniem
resp, err := client.R().
      SetFile("profile_img", "/Users/jeeva/test-img.png").
      Post("http://myapp.com/upload")

// Przesyłanie plików partiami przy użyciu SetFiles
resp, err := client.R().
      SetFiles(map[string]string{
        "profile_img": "/Users/jeeva/test-img.png",
        "notes": "/Users/jeeva/text-file.txt",
      }).
      Post("http://myapp.com/upload")

// Przesyłanie plików partiami i jednoczesne ustawianie innych parametrów formularza
resp, err := client.R().
      SetFiles(map[string]string{
        "profile_img": "/Users/jeeva/test-img.png",
        "notes": "/Users/jeeva/text-file.txt",
      }).
      SetFormData(map[string]string{
        "first_name": "Jeevanandam",
        "last_name": "M",
        "zip_code": "00001",
        "city": "my city",
        "access_token": "C6A79608-782F-4ED0-A11D-BD82FAD829CD",
      }).
      Post("http://myapp.com/profile")

Pobieranie Plików

// Utwórz klienta Resty
client := resty.New()

// Ustaw katalog wyjściowy pliku, Resty automatycznie go utworzy, jeśli nie istnieje
// To ustawienie jest opcjonalne, jeśli ustawiony jest parametr SetOutput z bezwzględną ścieżką.
client.SetOutputDirectory("/Users/tizi365/Downloads")

// Wyślij tutaj żądanie HTTP i zapisz rezultat żądania w ścieżce pliku ustawionej przez parametr SetOutput
_, err := client.R().
          SetOutput("plugin/ReplyWithHeader-v5.1-beta.zip").
          Get("http://bit.ly/1LouEKr")

// Oto przykład użycia ścieżki bezwzględnej
_, err := client.R().
          SetOutput("/MyDownloads/plugin/ReplyWithHeader-v5.1-beta.zip").
          Get("http://bit.ly/1LouEKr")