• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

微信小程序上传多张图片,后端只保存了最后一张的Bug

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

  真心吐槽一下微信小程序,上传图片竟然不支持多张一起传。所以,没办法了,后端只能配合做单个单个上传洛。

  遇到的问题:如标题描述,后端mysql存储图片字段用的是json,框架是laravel,model里面用casts将字段imgs转换成array,方便php处理。

  代码示例:(注释掉的一行是我后面为了解决bug加上的)

  

  问题是,每次小程序那边上传多张图片,我这边数据库里面都只记录了一张图片的地址,很是疑惑。

  后来每次把$old打印出来,结果每次都是空数组,于是想到了,可能是因为请求过快,比如3张图片一起传过来,每次读取的时候都没读取到信息,然后就都只保存了自己的,只有最后一个请求完成的生效。

  看了下阿里云oss上面的记录,显示3张图片都收到了,这印证了我的想法。于是让小程序那边请求,做个间隔,比如500毫秒,不要一次性请求,结果bug立马消失,数据库成功记录了3张图片。

  不过这不是最佳解决办法呀。

  想起来了,这是数据库隔离级别的问题。于是乎,去查阅了Mysql的4种隔离级别介绍,内容太长,贴个地址供参考:https://www.jianshu.com/p/4e3edbedb9a8

  最后采用设置会话隔离级别为串行化,解决bug。虽然这会导致第二张图片的上传阻塞,但是为了系统的功能性,以及实际业务的情况,决定还是采用这种办法。不过,Innodb是行级锁,应该问题不大~


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap