fiber
fiber copied to clipboard
🐛 [Bug]: nil multipart.FileHeader when parsing form
Bug Description
I try to parsing into struct that contain field type *multipart.FileHeader like this
type CreateFileRequest struct {
File *multipart.FileHeader `form:"file"`
}
func (h *fileHandler) CreatePrivateFile(c fiber.Ctx) error {
req := new(dto.CreateFileRequest)
if err := c.Bind().Form(req); err != nil {
return apperror.BadRequestError(err, "invalid file")
}
fileData, err := h.fileUseCase.CreatePrivateFile(c.Context(), req.File)
if err != nil {
return err
}
response, err := h.dto.ToResponse(*fileData)
if err != nil {
return err
}
return c.Status(201).JSON(dto.Success(response))
}
I got req.File is nil
How to Reproduce
Steps to reproduce the behavior:
Follow my code it simple
Expected Behavior
I should behavior like c.FormFile("file")
Fiber Version
v3.0.0-rc4
Code Snippet (optional)
// package dto
type CreateFileRequest struct {
File *multipart.FileHeader `form:"file"`
}
// package handler
func (h *fileHandler) CreatePrivateFile(c fiber.Ctx) error {
req := new(dto.CreateFileRequest)
if err := c.Bind().Form(req); err != nil {
return apperror.BadRequestError(err, "invalid file")
}
fileData, err := h.fileUseCase.CreatePrivateFile(c.Context(), req.File)
if err != nil {
return err
}
response, err := h.dto.ToResponse(*fileData)
if err != nil {
return err
}
return c.Status(201).JSON(dto.Success(response))
}
Checklist:
- [x] I agree to follow Fiber's Code of Conduct.
- [x] I have checked for existing issues that describe my problem prior to opening this one.
- [x] I understand that improperly formatted bug reports may be closed without explanation.
Thanks for opening your first issue here! 🎉 Be sure to follow the issue template! If you need help or want to chat with us, join us on Discord https://gofiber.io/discord
Test it with go get github.com/gofiber/fiber/v3@main. It is not included to the latest release, but it is available on main branch.
Solve It not on the currently rc version