This commit is contained in:
Liang Ding 2022-11-14 18:29:23 +08:00
parent 37d32caed4
commit a411a3d7ca
No known key found for this signature in database
GPG Key ID: 136F30F901A2231D
2 changed files with 37 additions and 0 deletions

View File

@ -17,6 +17,7 @@
package api
import (
"io"
"net/http"
"os"
"path"
@ -25,6 +26,7 @@ import (
"github.com/88250/gulu"
"github.com/gin-gonic/gin"
"github.com/siyuan-note/logging"
"github.com/siyuan-note/siyuan/kernel/model"
"github.com/siyuan-note/siyuan/kernel/util"
)
@ -296,3 +298,37 @@ func exportPreview(c *gin.Context) {
"html": stdHTML,
}
}
func exportAsFile(c *gin.Context) {
ret := gulu.Ret.NewResult()
defer c.JSON(http.StatusOK, ret)
form, err := c.MultipartForm()
if nil != err {
logging.LogErrorf("export as file failed: %s", err)
ret.Code = -1
ret.Msg = err.Error()
return
}
typ := form.Value["type"][0]
file := form.File["file"][0]
reader, err := file.Open()
if nil != err {
logging.LogErrorf("export as file failed: %s", err)
ret.Code = -1
ret.Msg = err.Error()
return
}
defer reader.Close()
data, err := io.ReadAll(reader)
if nil != err {
logging.LogErrorf("export as file failed: %s", err)
ret.Code = -1
ret.Msg = err.Error()
return
}
c.Data(http.StatusOK, typ, data)
}

View File

@ -226,6 +226,7 @@ func ServeAPI(ginServer *gin.Engine) {
ginServer.Handle("POST", "/api/export/exportDocx", model.CheckAuth, exportDocx)
ginServer.Handle("POST", "/api/export/addPDFOutline", model.CheckAuth, addPDFOutline)
ginServer.Handle("POST", "/api/export/preview", model.CheckAuth, exportPreview)
ginServer.Handle("POST", "/api/export/exportAsFile", model.CheckAuth, exportAsFile)
ginServer.Handle("POST", "/api/export/exportData", model.CheckAuth, exportData)
ginServer.Handle("POST", "/api/export/exportDataInFolder", model.CheckAuth, exportDataInFolder)
ginServer.Handle("POST", "/api/export/exportTempContent", model.CheckAuth, exportTempContent)