Фон Go декодирует изображение base64 и сохраняет его на файловом сервере.

задняя часть Go сервер

Один человек разрабатывает переднюю и заднюю части проекта мобильного терминала и фиксирует некоторые проблемы в проекте. Внешний интерфейс использует vue, а кодировка base64 по умолчанию загружает изображения, пропустите ее. Фреймворк go-gin используется в фоновом режиме, в основном используя функции маршрутизации и передачи данных и привязки

1. Бэкенд объявляет структуру для получения данных фронтэнда и сохранения данных в базу данных (mongodb)

  • Среди них ImgList используется для получения группы изображений в кодировке base64 от внешнего интерфейса.

2. Определите структуру и используйте c.Bind(), предоставленный go-gin, чтобы завершить привязку с интерфейсным объектом json.

  • Моя структура вложена здесь, пожалуйста, игнорируйте сообщение.

3. Обработка изображений, декодирование и сохранение

  • Во-первых, определите, загрузил ли внешний интерфейс изображения, и если да, объявите стандартный объект декодирования enc и адресный путь, по которому изображения будут сохранены.
  • фокусФормат кодировки :base64 аналогичен этому "data:image/jpeg;base64, .....", нам нужны данные после запятой, а тип данных указан перед запятой. Здесь я использую операцию нарезки go, чтобы определить формат изображения gif, jpeg, png в соответствии с img[11], а затем другую операцию нарезки img[22:] или img[23:] (еще одна буква jpeg), чтобы получить данные мы хотим.
  • Получите правильные данные изображения, определите путь к каталогу, который мы хотим сохранить на файловом сервере, и переименуйте изображение.topStorey.TID здесь — это уникальный идентификатор, который я сгенерировал с помощью метода bson.NewObjectId(), плюс пройденный индекс, чтобы гарантировать уникальность названий изображений.
  • После обработки основной информации изображения можно декодировать и открыть каталог сервера для сохранения изображения (как показано на рисунке). Путь к изображению, который я выбираю здесь, — nginx.каталог сайта, и, наконец, добавьте в путь протокол http и адрес nginx.В это время, если ваш nginx может быть доступен из внешней сети, изображения также могут быть доступны. В конце замените данные изображения в ImgList доступным адресом изображения и сохраните его в базе данных.

Позже я внес небольшие изменения в этот метод. При сопоставлении типа изображения лучше всего сопоставлять 3 буквы. Лучше всего преобразовать topStorey.TID в строку и использовать %x для кэширования его по пути. Если сохраненный каталог слишком глубок и не был создан, запишите его в файл Прежде чем вам нужно рекурсивно создать файловую директорию.Для получения дополнительной информации перейдите на мойgithub