欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

RTSP协议网络摄像头安防视频上云网关产品EasyNVR视频服务上传宣传位图片报错

程序员文章站 2022-07-05 21:51:05
...

关于EasyNVR中宣传位的设定,大家可以翻阅以前的博文了解一下(登录页如何实现插入产品广告位),宣传位的图片都是可以*上传删减的。

我们在测试宣传位上传功能的时候,后台报错"Op":“open”,“Path”:XXXXXX。

RTSP协议网络摄像头安防视频上云网关产品EasyNVR视频服务上传宣传位图片报错

这个报错信息提示是没法打开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,
   })
}

解决效果:

RTSP协议网络摄像头安防视频上云网关产品EasyNVR视频服务上传宣传位图片报错

上传宣传位图片成功。如果大家对EasyNVR视频平台还有疑问,欢迎大家进入我们演示平台观看预览,此外,TSINGSEE青犀视频云边端架构产品均可提供试用版本给大家测试,方便大家实际操作及开发。

EasyNVR视频平台播放界面如下,欢迎访问:

RTSP协议网络摄像头安防视频上云网关产品EasyNVR视频服务上传宣传位图片报错

相关标签: EasyNVR功能