Files
honoka-chan/middleware/multipart.go
T
YumeMichi 404ae115bc Hack for parsing multipart/form-data from iOS
Well I have no idea~

Signed-off-by: Yuan Si <do4suki@gmail.com>
2023-04-22 22:17:57 +08:00

36 lines
733 B
Go

package middleware
import (
"io"
"mime/multipart"
"strings"
"github.com/gin-gonic/gin"
)
func ParseMultipartForm(ctx *gin.Context) {
if ctx.Request.Header.Get("OS") != "Android" {
// I don't know why mime.ParseMediaType() is failed
// mime.ParseMediaType(ctx.Request.Header.Get("Content-Type"))
boundary := strings.ReplaceAll(ctx.Request.Header.Get("Content-Type"), "multipart/form-data; boundary=", "")
var reqData []byte
mReader := multipart.NewReader(ctx.Request.Body, boundary)
for {
part, err := mReader.NextPart()
if err == io.EOF {
break
}
CheckErr(err)
data, err := io.ReadAll(part)
CheckErr(err)
reqData = data
}
ctx.Set("request_data", string(reqData))
}
ctx.Next()
}