Przeglądaj źródła

修改附件下载接口,修复下载时会跳转页面黑屏的问题

wuww 6 lat temu
rodzic
commit
bba9fd2c90
1 zmienionych plików z 23 dodań i 3 usunięć
  1. 23 3
      controllers/partial/SysAttachmentController.go

+ 23 - 3
controllers/partial/SysAttachmentController.go

@@ -12,6 +12,9 @@ import (
 	"os"
 	"path"
 	"time"
+	"strings"
+	"mime"
+	"strconv"
 )
 
 // _Upload
@@ -37,6 +40,24 @@ func SysAttachment_Upload(c *entitys.CtrlContext) {
 // @Failure 403 :id is empty
 func SysAttachment_Download(c *entitys.CtrlContext) {
 	attrId := c.Ctx.Query("id")
+	//gt := c.Ctx.Query("get_thumb")
+	var engine = c.PlatformDbEngine
+	var attach =  sysmodel.SysAttachment{Id:attrId}
+	has, err := engine.Get(&attach)
+	if err != nil || !has {
+		syslogs.Error("获取附件出错了:", err)
+		c.Ctx.JSON(500, sysmodel.SysReturn{500, "获取附件出错了", nil})
+		return
+	}
+
+	filePath := "files/"+ attach.Id
+
+	c.Ctx.Header("Content-Disposition", "attachment;filename=\""+sysutils.FormatForBrowse(c.Ctx.Request.UserAgent(), attach.Name)+"\"")
+	c.Ctx.Header("Content-Type", strings.Replace(mime.TypeByExtension(attach.Ext), "charset=utf-8", "", -1))
+	c.Ctx.Header("Content-Length", strconv.FormatInt(int64(attach.Size), 10))
+	c.Ctx.File(filePath)
+	c.Ctx.Writer.WriteHeader(200)
+	/*attrId := c.Ctx.Query("id")
 
 	filePath := fmt.Sprintf("files/%s", attrId)
 
@@ -48,8 +69,7 @@ func SysAttachment_Download(c *entitys.CtrlContext) {
 		c.Ctx.JSON(500, sysmodel.SysReturn{500, err.Error(), nil})
 		return
 	}
-
-	c.Ctx.Writer.Write(file)
+	c.Ctx.Writer.Write(file)*/
 
 	////gt := c.Ctx.Query("get_thumb")
 	//var attach sysmodel.SysAttachment
@@ -130,7 +150,7 @@ func SysAttachment_Delete(c *entitys.CtrlContext) {
 	attrId := c.Ctx.Query("id")
 	attach := &sysmodel.SysAttachment{}
 	attach.Id = attrId
-	_, err := c.Db.Id(attrId).Delete(attach)
+	_, err := c.PlatformDbEngine.Id(attrId).Delete(attach)
 	if err != nil {
 		syslogs.Error("删除附件出错了:", err)
 		c.Ctx.JSON(500, sysmodel.SysReturn{500, err.Error(), nil})