Merge remote-tracking branch 'origin/dev' into dev

This commit is contained in:
Vanessa 2023-03-30 19:52:16 +08:00
commit 36418703dd
4 changed files with 22 additions and 11 deletions

View file

@ -18,6 +18,7 @@ package api
import (
"io"
"mime"
"mime/multipart"
"net/http"
"os"
@ -26,6 +27,7 @@ import (
"time"
"github.com/88250/gulu"
"github.com/gabriel-vasile/mimetype"
"github.com/gin-gonic/gin"
"github.com/siyuan-note/filelock"
"github.com/siyuan-note/logging"
@ -104,10 +106,23 @@ func getFile(c *gin.Context) {
return
}
if err = model.ServeFile(c, filePath); nil != err {
c.Status(http.StatusConflict)
data, err := filelock.ReadFile(filePath)
if nil != err {
logging.LogErrorf("read file [%s] failed: %s", filePath, err)
c.Status(500)
return
}
contentType := mime.TypeByExtension(filepath.Ext(filePath))
if "" == contentType {
if m := mimetype.Detect(data); nil != m {
contentType = m.String()
}
}
if "" == contentType {
contentType = "application/octet-stream"
}
c.Data(http.StatusOK, contentType, data)
}
func readDir(c *gin.Context) {
@ -179,7 +194,7 @@ func removeFile(c *gin.Context) {
return
}
if err = os.RemoveAll(filePath); nil != err {
if err = filelock.Remove(filePath); nil != err {
c.Status(500)
return
}

View file

@ -36,7 +36,6 @@ import (
util2 "github.com/88250/lute/util"
"github.com/dustin/go-humanize"
"github.com/facette/natsort"
"github.com/gin-gonic/gin"
"github.com/siyuan-note/filelock"
"github.com/siyuan-note/logging"
"github.com/siyuan-note/siyuan/kernel/cache"
@ -1641,9 +1640,3 @@ func (box *Box) removeSort(ids []string) {
return
}
}
func ServeFile(c *gin.Context, filePath string) (err error) {
WaitForWritingFiles()
c.File(filePath)
return
}

View file

@ -59,7 +59,7 @@ func IsOnline(checkURL string) bool {
func isOnline(checkURL string) bool {
c := req.C().SetTimeout(1 * time.Second)
_, err := c.R().Head("https://www.baidu.com")
_, err := c.R().Head(checkURL)
return nil == err
}

View file

@ -380,6 +380,9 @@ func initMime() {
mime.AddExtensionType(".dxf", "image/x-dxf")
mime.AddExtensionType(".dwf", "drawing/x-dwf")
mime.AddExtensionType(".pdf", "application/pdf")
// 文档数据文件
mime.AddExtensionType(".sy", "application/json")
}
func initPandoc() {