|
@@ -20,6 +20,7 @@ import (
|
|
|
"bytes"
|
|
|
"io"
|
|
|
"io/fs"
|
|
|
+ "mime"
|
|
|
"os"
|
|
|
"path"
|
|
|
"path/filepath"
|
|
@@ -28,10 +29,26 @@ import (
|
|
|
|
|
|
"github.com/88250/gulu"
|
|
|
"github.com/88250/lute/ast"
|
|
|
+ "github.com/gabriel-vasile/mimetype"
|
|
|
"github.com/siyuan-note/filelock"
|
|
|
"github.com/siyuan-note/logging"
|
|
|
)
|
|
|
|
|
|
+func GetMimeTypeByExt(filePath string) (ret string) {
|
|
|
+ ret = mime.TypeByExtension(filepath.Ext(filePath))
|
|
|
+ if "" == ret {
|
|
|
+ m, err := mimetype.DetectFile(filePath)
|
|
|
+ if nil != err {
|
|
|
+ logging.LogErrorf("detect mime type of [%s] failed: %s", filePath, err)
|
|
|
+ return
|
|
|
+ }
|
|
|
+ if nil != m {
|
|
|
+ ret = m.String()
|
|
|
+ }
|
|
|
+ }
|
|
|
+ return
|
|
|
+}
|
|
|
+
|
|
|
func IsSymlinkPath(absPath string) bool {
|
|
|
fi, err := os.Lstat(absPath)
|
|
|
if nil != err {
|