sharing base64 file data

This commit is contained in:
grngxd 2025-06-08 00:00:56 +01:00 committed by hex
parent c4f7f79cfd
commit f947cba89d
2 changed files with 18 additions and 0 deletions

View file

@ -1,6 +1,7 @@
package routes package routes
import ( import (
"encoding/base64"
"os" "os"
"path/filepath" "path/filepath"
"time" "time"
@ -40,11 +41,17 @@ func RegisterFileRoutes(cfg *types.StereoConfig, api *gin.RouterGroup) {
return return
} }
// conver file variable to base64 string
b64, err := convertToBase64(filePath)
if err != nil {
}
fileMeta := types.File{ fileMeta := types.File{
ID: uid + "_" + file.Filename, ID: uid + "_" + file.Filename,
Path: filePath, Path: filePath,
Owner: uid, Owner: uid,
CreatedAt: time.Now(), CreatedAt: time.Now(),
Base64: b64,
} }
if err := cfg.Database.Create(&fileMeta).Error; err != nil { if err := cfg.Database.Create(&fileMeta).Error; err != nil {
@ -74,3 +81,13 @@ func RegisterFileRoutes(cfg *types.StereoConfig, api *gin.RouterGroup) {
c.JSON(200, files) c.JSON(200, files)
}) })
} }
func convertToBase64(filePath string) (string, error) {
file, err := os.ReadFile(filePath)
if err != nil {
return "", err
}
b64 := base64.StdEncoding.EncodeToString(file)
return b64, nil
}

View file

@ -27,4 +27,5 @@ type File struct {
Path string `gorm:"not null;index"` Path string `gorm:"not null;index"`
Owner string `gorm:"not null;index"` Owner string `gorm:"not null;index"`
CreatedAt time.Time `gorm:"autoCreateTime"` CreatedAt time.Time `gorm:"autoCreateTime"`
Base64 string `gorm:"type:text"`
} }