Merge remote-tracking branch 'origin/dev' into dev
This commit is contained in:
commit
36418703dd
4 changed files with 22 additions and 11 deletions
|
@ -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
|
||||
}
|
||||
|
|
|
@ -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
|
||||
}
|
||||
|
|
|
@ -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
|
||||
}
|
||||
|
||||
|
|
|
@ -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() {
|
||||
|
|
Loading…
Add table
Reference in a new issue