视频直播点播平台EasyDSS登录页如何实现插入产品广告位?

摘要:
例如,在视频直播点播平台EasyDSS的新版本中,我们在登录界面中添加了广告空间,以方便用户宣传其产品。在后台配置广告空间图像时,新版EasyDSS如何完成上传和删除图像文件?EasyDSS使用os包下的Remove方法删除server=Consts中存在的图像文件。PictureWidth{os.RemoteAbortWithStringreturn}//存储并保存iflinkUrl=“”{linkUrl=http://demo.easydss.com“}dao.GetDB().CreateSuccess}删除文件:funcdeleteImage{fileName:=DefaultValueid:=DefaultValueIntdao.GetB().Delete(&do.TPicture{},”id=?

我们大部分的流媒体服务器现在都已经开始改版了,新界面将会更加直观,更加符合用户的使用习惯。这次的改版也是联合了我们的设计和前端共同的想法,相对于之前的版本,新版在使用性、美观度、技术点上都有了不同程度的提升。

比如新版的视频直播点播平台EasyDSS里面,我们在登录界面增加了一个广告位,便于用户进行自己产品的宣传和推广。广告位的图片可以自行上传或者删除,自行进行更新。

视频直播点播平台EasyDSS登录页如何实现插入产品广告位?第1张

新版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)
}

视频直播点播平台EasyDSS登录页如何实现插入产品广告位?第2张

免责声明:文章转载自《视频直播点播平台EasyDSS登录页如何实现插入产品广告位?》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇视频直播点播平台EasyDSS浏览器控制台报”命名重复“错误解决办法视频直播点播平台EasyDSS系统如何将数据库迁移到Mysql数据库?下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

随便看看

laravel中将session由文件保存改为数据库保存

1.laravel中默认是使用文件保存session的,保存在/storage/framework/sessions下 2.修改配置文件 config/session.php中 'driver' => env('SESSION_DRIVER', 'file') 将.env文件中的SESSION_DRIVER对应值由file改为database,...

Python基础知识汇总

1.执行脚本的两种方式 Python a.py 直接调用Python解释器执行文件 chomd +x a.py ./a.py #修改a.py文件的属性,为可执行,在用 ./ 执行a.py 文件 2、简述位、字节的关系 1bytes=8bit ,2**8=256,可以代表256中变化, 3、简述 ascii、unicode、ut...

Linux下的静态库和动态库 yg2362 C++博客

Linux下的静态库和动态库 - yg2362 - C++博客 Linux下的静态库和动态库 1.制作自己的动态库和静态库 linux下动态库以.so结尾,静态库以.a结尾,它们都以lib开头,比如一个库名为net,那么它的全名应该是libnet.so或者libnet.a。 我们有两个文件,hello.c和test.c,下面是两个文件的内容 //hell...

关于我们 数据堂 Datatang,科研数据共享平台,实验数据,科研数据,科学数据,统计数据,企业数据,行业数据,生活数据,数据集,免费下载

关于我们 数据堂 Datatang,科研数据共享平台,实验数据,科研数据,科学数据,统计数据,企业数据,行业数据,生活数据,数据集,免费下载 海量科研数据共享平台 专业精英团队保驾护航 支撑科学研究,助力企业研发 专业、权威、开放、共赢 数据堂(http://www.datatang.com/)是国内专业的科研数据共享服务平台,致力于为国内外高等院校、科研机...

北航云计算公开课 01 Introduction to Cloud Computing

北航云计算公开课01IntroductiontoCloudComputing_邓侃_新浪博客 北航云计算公开课01IntroductiontoCloudComputing 受北航软件学院邀请,本学期讲授 “云计算技术与实践” 课程。每周一堂课,共一个学期,16 堂课。云计算既是当今学界的研究前沿,也是业界的竞争热点。听众是北航软件学院和计...

JS中的sleep

除了Narrative JS,jwacs(Javascript With Advanced Continuation Support) 也致力于通过扩展JavaScript语法来避免编写让人头痛的异步调用的回调函数。用jwacs 实现的sleep,代码是这样: function sleep(msec) { var k = function_con...

最新文章