添加直接上传文件的接口
This commit is contained in:
parent
19da5c532c
commit
6c901e2554
@ -1,14 +1,20 @@
|
|||||||
package controller
|
package controller
|
||||||
|
|
||||||
import (
|
import (
|
||||||
|
"background/db"
|
||||||
|
"background/model"
|
||||||
"background/utils"
|
"background/utils"
|
||||||
|
"fmt"
|
||||||
"image"
|
"image"
|
||||||
"image/color"
|
"image/color"
|
||||||
"image/jpeg"
|
"image/jpeg"
|
||||||
"io/ioutil"
|
"io/ioutil"
|
||||||
"log"
|
"log"
|
||||||
|
"math"
|
||||||
"net/http"
|
"net/http"
|
||||||
"os"
|
"os"
|
||||||
|
"strconv"
|
||||||
|
"strings"
|
||||||
|
|
||||||
"github.com/disintegration/imaging"
|
"github.com/disintegration/imaging"
|
||||||
"github.com/gin-gonic/gin"
|
"github.com/gin-gonic/gin"
|
||||||
@ -210,6 +216,88 @@ func (this *FileController) DownloadFile(c *gin.Context) {
|
|||||||
c.Writer.Write(bytes)
|
c.Writer.Write(bytes)
|
||||||
|
|
||||||
}
|
}
|
||||||
|
func myAtoi(str string) int {
|
||||||
|
num := 0
|
||||||
|
s := ""
|
||||||
|
flag := false
|
||||||
|
str = strings.TrimSpace(str)
|
||||||
|
if len(str) == 0 {
|
||||||
|
return 0
|
||||||
|
}
|
||||||
|
for i := 0; i < len(str); i++ {
|
||||||
|
if !(str[i] >= '0' && str[i] <= '9') && !(str[i] == '+' || str[i] == '-') {
|
||||||
|
break
|
||||||
|
}
|
||||||
|
if str[i] == '+' {
|
||||||
|
if flag || s != "" {
|
||||||
|
break
|
||||||
|
}
|
||||||
|
flag = true
|
||||||
|
continue
|
||||||
|
}
|
||||||
|
if str[i] == '-' {
|
||||||
|
if flag || s != "" {
|
||||||
|
break
|
||||||
|
}
|
||||||
|
flag = true
|
||||||
|
s += "-"
|
||||||
|
continue
|
||||||
|
}
|
||||||
|
s += string(str[i])
|
||||||
|
}
|
||||||
|
num, _ = strconv.Atoi(s)
|
||||||
|
if num > math.MaxInt32 {
|
||||||
|
return math.MaxInt32
|
||||||
|
} else if num < math.MinInt32 {
|
||||||
|
return math.MinInt32
|
||||||
|
}
|
||||||
|
return num
|
||||||
|
}
|
||||||
|
|
||||||
|
func (this *FileController) OnFileUploadFileMarkdown(c *gin.Context) {
|
||||||
|
parent := c.Query("parent")
|
||||||
|
filename := c.Query("filename")
|
||||||
|
file, _, err := c.Request.FormFile("file")
|
||||||
|
if nil != err || nil == file {
|
||||||
|
log.Print(err.Error())
|
||||||
|
return
|
||||||
|
}
|
||||||
|
bytes, err := ioutil.ReadAll(file)
|
||||||
|
if nil != err {
|
||||||
|
log.Print(err.Error())
|
||||||
|
return
|
||||||
|
}
|
||||||
|
log.Print(parent, filename, string(bytes))
|
||||||
|
|
||||||
|
query := fmt.Sprintf("select * from doc_copy1 where doc_copy1.id = '%d'", int32(myAtoi(parent)))
|
||||||
|
docs := []model.DocTree{}
|
||||||
|
e := db.GetMysqlClient().Query2(query, &docs)
|
||||||
|
if nil != e {
|
||||||
|
log.Print(e.Error())
|
||||||
|
return
|
||||||
|
}
|
||||||
|
if len(docs) == 0 {
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
fork := strings.ReplaceAll(string(bytes), "\\\\", "\\\\\\\\")
|
||||||
|
fork = strings.ReplaceAll(string(fork), "\\", "\\\\")
|
||||||
|
|
||||||
|
e = model.CreateDocTree(
|
||||||
|
model.DocTree{
|
||||||
|
Title: filename,
|
||||||
|
Content: fork,
|
||||||
|
Author: "admin",
|
||||||
|
IsPublic: 1,
|
||||||
|
Father: int32(myAtoi(parent)),
|
||||||
|
Level: docs[0].Level + 1,
|
||||||
|
},
|
||||||
|
)
|
||||||
|
if nil != e {
|
||||||
|
log.Printf(e.Error())
|
||||||
|
}
|
||||||
|
c.JSON(200, map[string]interface{}{"msg": "ok"})
|
||||||
|
}
|
||||||
|
|
||||||
func (this *FileController) OnFileUploadFile(c *gin.Context) {
|
func (this *FileController) OnFileUploadFile(c *gin.Context) {
|
||||||
path := c.Query("path")
|
path := c.Query("path")
|
||||||
|
3
main.go
3
main.go
@ -40,7 +40,6 @@ func CORSMiddleware(c *gin.Context) {
|
|||||||
} else {
|
} else {
|
||||||
c.Writer.Header().Set("Access-Control-Allow-Origin", "https://testingcloud.club")
|
c.Writer.Header().Set("Access-Control-Allow-Origin", "https://testingcloud.club")
|
||||||
|
|
||||||
c.Writer.Header().Set("Access-Control-Allow-Origin", "http://127.0.0.1:8080")
|
|
||||||
}
|
}
|
||||||
c.Writer.Header().Set("Access-Control-Max-Age", "86400")
|
c.Writer.Header().Set("Access-Control-Max-Age", "86400")
|
||||||
c.Writer.Header().Set("Access-Control-Allow-Headers",
|
c.Writer.Header().Set("Access-Control-Allow-Headers",
|
||||||
@ -194,7 +193,7 @@ func main() {
|
|||||||
api.GET("/hardware", controller.ReadHardWare) // 读取硬件
|
api.GET("/hardware", controller.ReadHardWare) // 读取硬件
|
||||||
api.DELETE("/hardware", controller.DeleteHardWare) // 读取硬件
|
api.DELETE("/hardware", controller.DeleteHardWare) // 读取硬件
|
||||||
|
|
||||||
api.POST("/file", fileController.OnFileUploadFile) // 上传文件
|
api.POST("/upload_doc", fileController.OnFileUploadFileMarkdown) // 上传文件
|
||||||
|
|
||||||
api.PUT("/file", fileController.OnFileUploadFile) // 上传文件
|
api.PUT("/file", fileController.OnFileUploadFile) // 上传文件
|
||||||
api.GET("/file", fileController.DownloadFile) // 下载 文件
|
api.GET("/file", fileController.DownloadFile) // 下载 文件
|
||||||
|
@ -145,6 +145,7 @@ func CreateDocTree(doc DocTree) error {
|
|||||||
NOT EXISTS ( SELECT * FROM doc_copy1 WHERE doc_copy1.title = '%s' );`, doc.Title, strings.Replace(doc.Content, "'", "\\'", -1),
|
NOT EXISTS ( SELECT * FROM doc_copy1 WHERE doc_copy1.title = '%s' );`, doc.Title, strings.Replace(doc.Content, "'", "\\'", -1),
|
||||||
doc.Author, doc.Type, doc.IsPublic, time.Now().Format("2006-01-02 15:04:05"), doc.Father, doc.Level, doc.Title)
|
doc.Author, doc.Type, doc.IsPublic, time.Now().Format("2006-01-02 15:04:05"), doc.Father, doc.Level, doc.Title)
|
||||||
_, e := db.GetMysqlClient().Query(sql)
|
_, e := db.GetMysqlClient().Query(sql)
|
||||||
|
log.Print(sql)
|
||||||
if nil != e {
|
if nil != e {
|
||||||
log.Print(sql)
|
log.Print(sql)
|
||||||
logs.Error(e.Error())
|
logs.Error(e.Error())
|
||||||
|
Loading…
Reference in New Issue
Block a user