Загрузка файлов
Gin позволяет легко обрабатывать multipart-загрузку файлов. Фреймворк предоставляет встроенные методы в gin.Context для получения загруженных файлов:
c.FormFile(name)— Получает один файл из запроса по имени поля формы.c.MultipartForm()— Разбирает всю multipart-форму, предоставляя доступ ко всем загруженным файлам и значениям полей.c.SaveUploadedFile(file, dst)— Удобный метод, который сохраняет полученный файл по указанному пути на диске.
Ограничение памяти
Gin устанавливает ограничение памяти по умолчанию 32 МиБ для разбора multipart-форм через router.MaxMultipartMemory. Файлы в пределах этого лимита буферизуются в памяти; всё, что превышает лимит, записывается во временные файлы на диске. Вы можете настроить это значение под нужды вашего приложения:
router := gin.Default()// Lower the limit to 8 MiBrouter.MaxMultipartMemory = 8 << 20 // 8 MiBЗамечание о безопасности
Имя файла, сообщённое клиентом (file.Filename), не должно использоваться без проверки. Всегда очищайте или заменяйте его перед использованием в операциях с файловой системой. Подробнее см. документацию Content-Disposition на MDN.
Подстраницы
- Один файл — Загрузка и сохранение одного файла за запрос.
- Несколько файлов — Загрузка и сохранение нескольких файлов в одном запросе.
- Ограничение размера загрузки — Ограничение размера загрузки с помощью
http.MaxBytesReader.