Prechádzať zdrojové kódy

:art: 超链接地址更好地兼容本地路径 https://github.com/siyuan-note/siyuan/issues/5980

Liang Ding 2 rokov pred
rodič
commit
bc6f6e467e
2 zmenil súbory, kde vykonal 12 pridanie a 7 odobranie
  1. 6 1
      kernel/api/asset.go
  2. 6 6
      kernel/model/upload.go

+ 6 - 1
kernel/api/asset.go

@@ -231,8 +231,13 @@ func insertLocalAssets(c *gin.Context) {
 	for _, pathArg := range assetPathsArg {
 		assetPaths = append(assetPaths, pathArg.(string))
 	}
+	isUpload := true
+	isUploadArg := arg["isUpload"]
+	if nil != isUploadArg {
+		isUpload = isUploadArg.(bool)
+	}
 	id := arg["id"].(string)
-	succMap, err := model.InsertLocalAssets(id, assetPaths)
+	succMap, err := model.InsertLocalAssets(id, assetPaths, isUpload)
 	if nil != err {
 		ret.Code = -1
 		ret.Msg = err.Error()

+ 6 - 6
kernel/model/upload.go

@@ -34,7 +34,7 @@ import (
 	"github.com/siyuan-note/siyuan/kernel/util"
 )
 
-func InsertLocalAssets(id string, assetPaths []string) (succMap map[string]interface{}, err error) {
+func InsertLocalAssets(id string, assetPaths []string, isUpload bool) (succMap map[string]interface{}, err error) {
 	succMap = map[string]interface{}{}
 
 	bt := treenode.GetBlockTree(id)
@@ -44,9 +44,9 @@ 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 {
+	assetsDirPath := getAssetsDir(filepath.Join(util.DataDir, bt.BoxID), docDirLocalPath)
+	if !gulu.File.IsExist(assetsDirPath) {
+		if err = os.MkdirAll(assetsDirPath, 0755); nil != err {
 			return
 		}
 	}
@@ -59,7 +59,7 @@ func InsertLocalAssets(id string, assetPaths []string) (succMap map[string]inter
 		ext = strings.ToLower(ext)
 		fName += ext
 		baseName := fName
-		if gulu.File.IsDir(p) {
+		if gulu.File.IsDir(p) || !isUpload {
 			succMap[baseName] = "file://" + p
 			continue
 		}
@@ -87,7 +87,7 @@ func InsertLocalAssets(id string, assetPaths []string) (succMap map[string]inter
 			ext := path.Ext(fName)
 			fName = fName[0 : len(fName)-len(ext)]
 			fName = fName + "-" + ast.NewNodeID() + ext
-			writePath := filepath.Join(assets, fName)
+			writePath := filepath.Join(assetsDirPath, fName)
 			if _, err = f.Seek(0, io.SeekStart); nil != err {
 				f.Close()
 				return