Не получается валидировать multipart/form-data. Есть два поля: img (картинка) и alt (текст). Как правильно валидировать ситуацию, когда юзер картинку не передает? Делаю вот так:
type ImageUploadForm struct {
Alt string `form:"alt" binding:"required"`
Img *multipart.FileHeader `form:"img" binding:"required"`
}
func (ctr *imagesController) Upload(c *gin.Context) {
var imgForm forms.ImageUploadForm
if err := c.MustBindWith(&imgForm, binding.FormMultipart); err != nil {
c.Error(err)
return
}
/// Тут дальше обработка, к проблеме уже не относится
}
Код довольно сильно упростил, но, думаю, понятно. Проблема в том, что так не работает. То есть если не указать alt при сабмите формы, то MustBindWith кидает ошибку - все в порядке. Но если не отправлять файл в img, то MustBindWith ошибку почему-то не возвращает. Вопрос: почему и как сделать правильно?
P.s. в заголовке Content-Type передаю multipart/form-data - тут все ок