base64image.go 895 B

1234567891011121314151617181920212223242526272829303132333435363738
  1. package utils
  2. import (
  3. "context"
  4. "encoding/base64"
  5. "file_upload/simple_zap"
  6. "os"
  7. "strings"
  8. )
  9. func ParseBase64ImageString(input, name string) error {
  10. parts := strings.Split(input, ",")
  11. if len(parts) < 2 {
  12. panic("Invalid Base64 image string")
  13. }
  14. contentTypePart := strings.TrimSpace(parts[0])
  15. contentTypeParts := strings.Split(contentTypePart, ";")
  16. _ = strings.TrimSpace(contentTypeParts[0])
  17. data := parts[1]
  18. decodeString, err := base64.StdEncoding.DecodeString(data)
  19. if err != nil {
  20. return err
  21. }
  22. optputpath := "./upload" + "/" + name + ".png"
  23. create, err := os.Create(optputpath)
  24. if err != nil {
  25. simple_zap.WithCtx(context.TODO()).Sugar().Warn(err, "创建文件失败")
  26. return err
  27. }
  28. defer create.Close()
  29. _, err = create.Write(decodeString)
  30. if err != nil {
  31. simple_zap.WithCtx(context.TODO()).Sugar().Warn(err, "写入文件失败")
  32. return err
  33. }
  34. return err
  35. }