feat: 优化编辑器 UI 和文件名显示,支持全屏编辑模式
This commit is contained in:
@@ -248,7 +248,8 @@ func (s *common) CompleteUpload(ctx context.Context, userID int64, form *common_
|
||||
ObjectKey: objectKey,
|
||||
Hash: hash,
|
||||
Meta: types.NewJSONType(fields.MediaAssetMeta{
|
||||
Size: totalSize,
|
||||
Filename: meta.Filename,
|
||||
Size: totalSize,
|
||||
}),
|
||||
}
|
||||
}
|
||||
@@ -384,7 +385,8 @@ func (s *common) Upload(
|
||||
ObjectKey: objectKey,
|
||||
Hash: hash,
|
||||
Meta: types.NewJSONType(fields.MediaAssetMeta{
|
||||
Size: size,
|
||||
Filename: file.Filename,
|
||||
Size: size,
|
||||
}),
|
||||
}
|
||||
}
|
||||
@@ -398,10 +400,14 @@ func (s *common) Upload(
|
||||
|
||||
func (s *common) composeUploadResult(asset *models.MediaAsset) *common_dto.UploadResult {
|
||||
url := s.GetAssetURL(asset.ObjectKey)
|
||||
filename := filepath.Base(asset.ObjectKey)
|
||||
// Try to get original filename if stored? Currently objectKey has UUID prefix.
|
||||
// We can store original filename in Meta if needed. For now, just return valid result.
|
||||
// Meta is JSONType wrapper.
|
||||
filename := asset.Meta.Data().Filename
|
||||
if filename == "" {
|
||||
filename = filepath.Base(asset.ObjectKey)
|
||||
// Try to strip UUID prefix (36 chars + 1 underscore = 37)
|
||||
if len(filename) > 37 && filename[36] == '_' {
|
||||
filename = filename[37:]
|
||||
}
|
||||
}
|
||||
size := asset.Meta.Data().Size
|
||||
|
||||
return &common_dto.UploadResult{
|
||||
|
||||
@@ -370,7 +370,18 @@ func (s *creator) GetContent(ctx context.Context, userID int64, id string) (*cre
|
||||
|
||||
for _, ca := range c.ContentAssets {
|
||||
if ca.Asset != nil {
|
||||
sizeBytes := ca.Asset.Meta.Data().Size
|
||||
meta := ca.Asset.Meta.Data()
|
||||
name := meta.Filename
|
||||
if name == "" {
|
||||
// Fallback: strip UUID prefix (36 chars + 1 underscore = 37)
|
||||
if len(ca.Asset.ObjectKey) > 37 && ca.Asset.ObjectKey[36] == '_' {
|
||||
name = ca.Asset.ObjectKey[37:]
|
||||
} else {
|
||||
name = ca.Asset.ObjectKey
|
||||
}
|
||||
}
|
||||
|
||||
sizeBytes := meta.Size
|
||||
sizeMB := float64(sizeBytes) / 1024.0 / 1024.0
|
||||
sizeStr := cast.ToString(float64(int(sizeMB*100))/100.0) + " MB"
|
||||
|
||||
@@ -379,7 +390,7 @@ func (s *creator) GetContent(ctx context.Context, userID int64, id string) (*cre
|
||||
Role: string(ca.Role),
|
||||
Type: string(ca.Asset.Type),
|
||||
URL: Common.GetAssetURL(ca.Asset.ObjectKey),
|
||||
Name: ca.Asset.ObjectKey, // Simple fallback
|
||||
Name: name,
|
||||
Size: sizeStr,
|
||||
Sort: int(ca.Sort),
|
||||
})
|
||||
|
||||
@@ -2,6 +2,7 @@ package fields
|
||||
|
||||
// MediaAssetMeta 媒体资源元数据
|
||||
type MediaAssetMeta struct {
|
||||
Filename string `json:"filename,omitempty"`
|
||||
Hash string `json:"hash,omitempty"`
|
||||
Duration float64 `json:"duration,omitempty"` // 秒
|
||||
Width int `json:"width,omitempty"`
|
||||
|
||||
Reference in New Issue
Block a user