Как сохранить картинку полученную с Frontend в папку?

В Go существует несколько способов сохранить картинку, полученную с фронтенда, в папку на сервере. Один из самых простых способов - использовать пакет net/http для принятия запроса, а затем пакет io/ioutil для сохранения файла.

Вот пример кода, который позволяет сохранить картинку, полученную с фронтенда, в папку на сервере:

package main

import (
	"io/ioutil"
	"net/http"
	"os"
)

func uploadImage(w http.ResponseWriter, r *http.Request) {
	file, _, err := r.FormFile("image") // Передаваемое поле должно называться "image"
	if err != nil {
		http.Error(w, err.Error(), http.StatusBadRequest)
		return
	}
	defer file.Close()

	// Создаем файл на сервере
	tempFile, err := ioutil.TempFile("", "uploaded-image-")
	if err != nil {
		http.Error(w, err.Error(), http.StatusInternalServerError)
		return
	}
	defer tempFile.Close()

	// Читаем данные из присланного файла и записываем в созданный файл
	fileBytes, err := ioutil.ReadAll(file)
	if err != nil {
		http.Error(w, err.Error(), http.StatusInternalServerError)
		return
	}
	tempFile.Write(fileBytes)

	// Далее, если нужно, можно переместить созданный файл в требуемую папку
	err = os.Rename(tempFile.Name(), "/path/to/destination/folder/image.jpg")
	if err != nil {
		http.Error(w, err.Error(), http.StatusInternalServerError)
		return
	}

	// Отправляем ответ об успешной загрузке
	w.Write([]byte("Image uploaded successfully"))
}

func main() {
	http.HandleFunc("/upload", uploadImage)
	http.ListenAndServe(":8080", nil)
}

Обратите внимание, что код ожидает, что клиент будет отправлять файл с именем поля "image". Если вы ожидаете другое имя поля, измените соответствующую строку в коде:

file, _, err := r.FormFile("image")

Также обратите внимание, что путь к папке назначения должен быть изменен в следующей строке:

err = os.Rename(tempFile.Name(), "/path/to/destination/folder/image.jpg")

Замените "/path/to/destination/folder/image.jpg" на путь к желаемой папке и имени файла.

Это лишь один из множества способов сохранения и обработки картинок в Go. Имейте в виду, что код этого примера не является полным и не включает обработку возможных ошибок, что рекомендуется для реального применения.