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

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

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

75.png

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

解决效果:

76.png

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

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

NVR8.png

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值