Skip to content

Commit 2022700

Browse files
committed
fea: 文件系统local
1 parent 1430335 commit 2022700

3 files changed

Lines changed: 68 additions & 0 deletions

File tree

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
package filesystem
2+
3+
import (
4+
"github.com/gin-gonic/gin"
5+
"github.com/go-home-admin/home/bootstrap/services/app"
6+
)
7+
8+
type FileDisk interface {
9+
FormFile(c *gin.Context, up, to string) string
10+
}
11+
12+
func Disk(t string) FileDisk {
13+
return app.GetBean("t").(FileDisk)
14+
}
Lines changed: 41 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,41 @@
1+
package filesystem
2+
3+
import (
4+
"github.com/gin-gonic/gin"
5+
"github.com/go-home-admin/home/app"
6+
"os"
7+
)
8+
9+
// Local @Bean
10+
type Local struct {
11+
root string
12+
url string
13+
}
14+
15+
func (l *Local) Init() {
16+
l.root = app.Config("filesystem.local.root", "./storage/")
17+
l.url = app.Config("filesystem.local.url", "http://127.0.0.1/web/storage/")
18+
}
19+
20+
func (l *Local) FormFile(c *gin.Context, up, to string) (string, error) {
21+
// 获取上传的文件
22+
file, err := c.FormFile(up)
23+
if err != nil {
24+
return "", err
25+
}
26+
// 创建目标文件夹,如果不存在
27+
dst := l.root + to
28+
if _, err := os.Stat(dst); os.IsNotExist(err) {
29+
err = os.MkdirAll(dst, 0755)
30+
if err != nil {
31+
return "", err
32+
}
33+
}
34+
// 拼接目标文件路径
35+
dst = dst + file.Filename
36+
// 保存文件到目标路径
37+
if err := c.SaveUploadedFile(file, dst); err != nil {
38+
return "", err
39+
}
40+
return l.url + dst, nil
41+
}

config/filesystems.yaml

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
# 文件系统
2+
default: local
3+
4+
disks:
5+
local:
6+
bean: local
7+
# 保存路径
8+
root: ./storage/files
9+
url:
10+
oss:
11+
# 依赖的名称, @Bean(oss_alias)
12+
bean:
13+
root:

0 commit comments

Comments
 (0)