Как достать фото из POST запроса, который пришел на сервер на языке golang?

Для того чтобы достать фото из POST запроса, пришедшего на сервер на языке Go, нужно использовать пакет "net/http" для обработки запроса и пакет "mime/multipart" для работы с мультипарт формами.

Вот пример кода, который демонстрирует, как достать фото из POST запроса:

package main

import (
	"fmt"
	"log"
	"net/http"
	"mime/multipart"
)

func main() {
	http.HandleFunc("/", handleRequest)
	log.Fatal(http.ListenAndServe(":8080", nil))
}

func handleRequest(w http.ResponseWriter, r *http.Request) {
	if r.Method == "POST" {
		// Разбираем форму с файлами
		err := r.ParseMultipartForm(32 << 20) // Размер максимального файла
		if err != nil {
			http.Error(w, err.Error(), http.StatusBadRequest)
			return
		}

		formFile, _, err := r.FormFile("file") // "file" - имя поля файла в форме
		if err != nil {
			http.Error(w, err.Error(), http.StatusBadRequest)
			return
		}
		defer formFile.Close()

		// Здесь можно сохранить файл на сервере или выполнить с ним нужные действия.
    // В данном примере просто выводим информацию о файле.
		fileHeader := make([]byte, 512)
		_, err = formFile.Read(fileHeader)
		if err != nil {
			http.Error(w, err.Error(), http.StatusInternalServerError)
			return
		}
		fileContentType := http.DetectContentType(fileHeader)
		fmt.Fprintf(w, "Content Type: %sn", fileContentType)
	}
}

В этом примере мы создаем HTTP сервер с помощью функции http.ListenAndServe(). В функции handleRequest мы проверяем, что метод запроса POST и затем разбираем мультипарт форму с помощью r.ParseMultipartForm() функции. Далее, используя r.FormFile(), мы извлекаем файл из формы по имени поля и сохраняем его в переменную formFile. В данном примере мы выводим информацию о файле, но вы можете выполнить с ним нужные действия, например, сохранить его на сервере.

Не забудьте указать имя поля файла в форме, которое вы хотите достать, в функции r.FormFile("file"). Проверьте, что это значение совпадает с именем поля файла в вашем POST запросе.

Если возникнут ошибки при чтении файла или при разборе формы, мы отправляем соответствующие HTTP ошибки (http.StatusBadRequest или http.StatusInternalServerError).

Надеюсь, это поможет вам достать фото из POST запроса в Go!