change upload file

This commit is contained in:
Havoc412 2024-10-24 22:08:43 +08:00
parent f2303e206c
commit 7ae67826e4
5 changed files with 24 additions and 12 deletions

View File

@ -5,6 +5,7 @@ import (
"catface/app/global/variable"
"catface/app/service/upload_file"
"catface/app/utils/response"
"path/filepath"
"github.com/gin-gonic/gin"
)
@ -18,12 +19,8 @@ type Upload struct {
func (u *Upload) StartUpload(context *gin.Context) {
// TODO 如果之后要存储到 Linux 服务器上特殊路径下,就需要修改这里。
dir_name := context.GetString(consts.ValidatorPrefix + "dir_name")
// 检查 dir_name 是否以 / 结尾,如果不是则补充一个 /
if len(dir_name) > 0 && dir_name[len(dir_name)-1] != '/' {
dir_name += "/"
}
savePath := filepath.Join(variable.BasePath, variable.ConfigYml.GetString("FileUploadSetting.UploadFileSavePath"), dir_name)
savePath := variable.BasePath + variable.ConfigYml.GetString("FileUploadSetting.UploadFileSavePath") + dir_name
if r, finnalSavePath := upload_file.Upload(context, savePath); r == true {
response.Success(context, consts.CurdStatusOkMsg, finnalSavePath)
} else {

View File

@ -27,7 +27,7 @@ func (u UpFiles) CheckParams(context *gin.Context) {
// 该函数主要是将本结构体的字段(成员)按照 consts.ValidatorPrefix+ json标签对应的 键 => 值 形式绑定在上下文,便于下一步(控制器)可以直接通过 context.Get(键) 获取相关值
extraAddBindDataContext := data_transfer.DataAddContext(u, consts.ValidatorPrefix, context)
if extraAddBindDataContext == nil {
response.ErrorSystem(context, "animialList表单验证器json化失败", "")
response.ErrorSystem(context, "upload Files 表单验证器json化失败", "")
return
}

View File

@ -29,7 +29,7 @@ type Animal struct {
AvatarHeight uint16 `json:"avatar_height,omitempty"` // 为了方便前端在加载图像前的骨架图 & 瀑布流展示。 // INFO 暂时没用到
AvatarWidth uint16 `json:"avatar_width,omitempty"` // 为了方便前端在加载图像前的骨架图 & 瀑布流展示。
HeadImg string `gorm:"type:varchar(10)" json:"head_img,omitempty"` // Head 默认处理为正方形。
Photos string `gorm:"type:varchar(100)" json:"photos,omitempty"` // 图片数组
Photos string `gorm:"type:varchar(255)" json:"photos,omitempty"` // 图片数组
// TAG POI
Latitude float64 `json:"latitude,omitempty"` // POI 位置相关
Longitude float64 `json:"longitude,omitempty"` // POI 位置相关

View File

@ -8,6 +8,7 @@ import (
"fmt"
"os"
"path"
"path/filepath"
"strings"
"time"
@ -27,10 +28,10 @@ func Upload(context *gin.Context, savePath string) (r bool, finnalSavePath inter
saveFileName := fmt.Sprintf("%d%s", sequence, file.Filename)
saveFileName = md5_encrypt.MD5(saveFileName) + path.Ext(saveFileName)
if saveErr = context.SaveUploadedFile(file, newSavePath+saveFileName); saveErr == nil {
if saveErr = context.SaveUploadedFile(file, filepath.Join(newSavePath, saveFileName)); saveErr == nil {
// 上传成功,返回资源的相对路径,这里请根据实际返回绝对路径或者相对路径
finnalSavePath = gin.H{
"path": strings.ReplaceAll(newReturnPath+saveFileName, variable.BasePath, ""),
"path": strings.ReplaceAll(filepath.Join(newReturnPath, saveFileName), variable.BasePath, ""),
}
return true, finnalSavePath
}
@ -44,9 +45,9 @@ func Upload(context *gin.Context, savePath string) (r bool, finnalSavePath inter
// 文件上传可以设置按照 xxx年-xx月 格式存储
func generateYearMonthPath(savePathPre string) (string, string) {
returnPath := variable.BasePath + variable.ConfigYml.GetString("FileUploadSetting.UploadFileReturnPath")
curYearMonth := time.Now().Format("2004_04")
newSavePathPre := savePathPre + curYearMonth
newReturnPathPre := returnPath + curYearMonth
curYearMonth := time.Now().In(time.Local).Format("2006_01")
newSavePathPre := filepath.Join(savePathPre, curYearMonth)
newReturnPathPre := filepath.Join(returnPath, curYearMonth)
// 相关路径不存在,创建目录
if _, err := os.Stat(newSavePathPre); err != nil {
if err = os.MkdirAll(newSavePathPre, os.ModePerm); err != nil {

14
test/time_test.go Normal file
View File

@ -0,0 +1,14 @@
package test
import (
"fmt"
"testing"
"time"
)
func TestTimeNow(t *testing.T) {
now := time.Now()
curYearMonth := now.In(time.Local).Format("2006_01")
fmt.Println(now, curYearMonth)
}