RTSP协议网络摄像头安防视频上云网关产品EasyNVR视频服务上传宣传位图片报错
关于EasyNVR中宣传位的设定,大家可以翻阅以前的博文了解一下(登录页如何实现插入产品广告位),宣传位的图片都是可以自由上传删减的。
我们在测试宣传位上传功能的时候,后台报错"Op":“open”,“Path”:XXXXXX。
这个报错信息提示是没法打开advert/images这个路径,有了之前问题的排查经验,我们可以从初始化数据库的地方入手,排查后果然发现是因为程序初始化时没有该文件夹,程序里没有判断这个文件夹存在或否,于是就出现了上述报错。
因此我们在以下代码处先判断文件夹是否存在,不存在就创建文件夹,这样就解决了上传宣传位图片报错。参考代码如下:
/** 新增广告图片 */ func AddAdvert(c *gin.Context) { var advert models.Advert if err := c.ShouldBind(&advert); err != nil { c.AbortWithStatusJSON(400, err.Error()) return } file, err := c.FormFile("file") if err != nil { c.AbortWithStatusJSON(400, err.Error()) return } fileName := file.Filename index := strings.LastIndex(fileName, ".") str := fileName[0:index] //名字经md5加密防止名字相同 name := utils.MD5(str) + fileName[index:] advert.Name = name advert.AdvertUrl = "/advert/" + name var dest = "" if runtime.GOARCH == "arm" { dest = filepath.Join(utils.ExcelDataDir()) } else { dest = filepath.Join(utils.AdvertDir(), fmt.Sprintf("%s", name)) } err = c.SaveUploadedFile(file, dest) if err != nil { fmt.Errorf("保存上传文件错误, %v", err) c.AbortWithStatusJSON(400, err) return } models.DB.Save(&advert) c.JSON(200, gin.H{ "advert": advert, }) }
解决效果:
上传宣传位图片成功。如果大家对EasyNVR视频平台还有疑问,欢迎大家进入我们演示平台观看预览,此外,TSINGSEE青犀视频云边端架构产品均可提供试用版本给大家测试,方便大家实际操作及开发。
EasyNVR视频平台播放界面如下,欢迎访问: