diff --git a/kernel/cache/asset.go b/kernel/cache/asset.go index d96f46ee0..0ed480d8b 100644 --- a/kernel/cache/asset.go +++ b/kernel/cache/asset.go @@ -45,6 +45,9 @@ func LoadAssets() { assets := filepath.Join(util.DataDir, "assets") filepath.Walk(assets, func(path string, info fs.FileInfo, err error) error { + if nil == info { + return err + } if info.IsDir() { if strings.HasPrefix(info.Name(), ".") { return filepath.SkipDir diff --git a/kernel/model/upload.go b/kernel/model/upload.go index fd4ce9860..41d34ce7c 100644 --- a/kernel/model/upload.go +++ b/kernel/model/upload.go @@ -45,6 +45,12 @@ func InsertLocalAssets(id string, assetPaths []string) (succMap map[string]inter docDirLocalPath := filepath.Join(util.DataDir, bt.BoxID, path.Dir(bt.Path)) assets := getAssetsDir(filepath.Join(util.DataDir, bt.BoxID), docDirLocalPath) + if !gulu.File.IsExist(assets) { + if err = os.MkdirAll(assets, 0755); nil != err { + return + } + } + for _, p := range assetPaths { fName := filepath.Base(p) fName = util.FilterUploadFileName(fName) @@ -124,7 +130,9 @@ func Upload(c *gin.Context) { if nil != form.Value["assetsDirPath"] { assetsDirPath = form.Value["assetsDirPath"][0] assetsDirPath = filepath.Join(util.DataDir, assetsDirPath) - if err := os.MkdirAll(assetsDirPath, 0755); nil != err { + } + if !gulu.File.IsExist(assetsDirPath) { + if err = os.MkdirAll(assetsDirPath, 0755); nil != err { ret.Code = -1 ret.Msg = err.Error() return