視頻直播點播平臺EasyDSS登錄頁如何實現插入產品廣告位?

我們大部分的流媒體服務器現在都已經開始改版了,新界面將會更加直觀,更加符合用戶的使用習慣。這次的改版也是聯合了我們的設計和前端共同的想法,相對於之前的版本,新版在使用性、美觀度、技術點上都有了不同程度的提升。

比如新版的視頻直播點播平臺EasyDSS裏面,我們在登錄界面增加了一個廣告位,便於用戶進行自己產品的宣傳和推廣。廣告位的圖片可以自行上傳或者刪除,自行進行更新。

850.png

新版EasyDSS中在後臺配置廣告位圖片時上傳圖片文件、刪除圖片文件是如何完成的?

解決方法:

EasyDSS採用的web框架是gin框架,gin框架中在對上傳圖片文件有接收方法。EasyDSS刪除存在服務器的圖片文件,採用的是os包下的Remove方法。下面我們看一下代碼演示:

代碼演示:

接受文件:

func (r *ConfigRouter) uploadImage(c *gin.Context) {
	file, _ := c.FormFile("file")
	remark := DefaultValue(c, "remark", "")
	linkUrl := DefaultValue(c, "linkUrl", "")
	//控制在10兆的大小
	if file.Size > consts.PictureSize {
		AbortWithString(c, http.StatusBadRequest, "圖片不能大於10兆")
		return
	}
	count := 0
	filename := file.Filename
	dao.GetDB().Table(consts.TableSysPicture).Where("name = ?", filename).Count(&count)
	if count > 0 {
		AbortWithString(c, http.StatusBadRequest, "圖片名字已經存在")
		return
	}
	if err := c.SaveUploadedFile(file, conf2.GetPictureCfgFilePath(filename)); err != nil {
		AbortWithString(c, http.StatusBadRequest, err.Error())
		return
	}
	file1, _ := os.Open(conf2.GetPictureCfgFilePath(filename))
	c1, _, _ := image.DecodeConfig(file1)
	if c1.Height != consts.PictureHeight || c1.Width != consts.PictureWidth {
		os.Remove(conf2.GetPictureCfgFilePath(filename))
		AbortWithString(c, http.StatusBadRequest, "圖片尺寸有誤")
		return
	}
	//入庫保存
	if linkUrl == "" {
		linkUrl = "http://demo.easydss.com"
	}
	dao.GetDB().Create(&do.TPicture{
		Name:    filename,
		Remark:  remark,
		LinkUrl: linkUrl,
		Enable:  0,
	})
	Success(c)
}

刪除文件:

func (r *ConfigRouter) deleteImage(c *gin.Context) {
	fileName := DefaultValue(c, "fileName", "")
	id := DefaultValueInt(c, "id", 0)
	dao.GetDB().Delete(&do.TPicture{}, "id = ?", id)
	if fileName == "" {
		AbortWithString(c, http.StatusBadRequest, "沒有文件")
		return
	}
	err := os.Remove(conf2.GetPictureCfgFilePath(fileName))
	if err != nil {
		AbortWithString(c, http.StatusBadRequest, err.Error())
		return
	}
	Success(c)
}

系統管理登錄頁宣傳爲配置V1.2.png

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章