收藏
回答

小程序读取图片文件上传到云函数进行安全检验非常慢?

使用chooseImage读取图片文件,真机上非常的慢,看到打的log已经readFile出数据了,但是接下来是调用云函数都没调用,在云函数里根本没看到被调用。

在开发工具上是可以,但是也不是很快。

有没有人知道怎么解决这个问题?谢谢

回答关注问题邀请回答
收藏

4 个回答

  • 见相非相
    见相非相
    2019-12-19
      let that = this;
    //让用户选择或拍摄照片
            wx.chooseImage({
                count: 9,
                sizeType: ['original', 'compressed'],
                sourceType: ['album'],
                success(res) {
                    console.log(res)
                    const tempFiles = res.tempFiles
    
                    for (let index = 0; index < tempFiles.length; index++) {
                        // 如果文件大于1M
                        if (tempFiles[index].size > 1024 * 1000) {
                            wx.showToast({
                                title: '大于1M的图片已被去除',
                                icon: 'none',
                            });
                            continue
                        }
                        const file = tempFiles[index].path;
                        console.log('file', file)
    
                        wx.getFileSystemManager().readFile({
                            filePath: file,
                            success: res => {
                                console.log('readFile', res)
                                let imgBuffer = res.data
    
                                // 图片安全检测
                                wx.cloud.callFunction({
                                    name: 'checkImage',
                                    data: {
                                        imgBuffer: imgBuffer
                                    }
                                }).then(res => {
                                    console.log('检测结果', res)
                                    
                                })
                            }
                        })
    
                    }
    
                }
            })
    
    2019-12-19
    有用 1
    回复 2
    • 见相非相
      见相非相
      2019-12-19
      结贴了。在读取文件的时候加上encoding编码就可以了。感谢各位热情网友的参与(虽然没有几个人,好尴尬..)
      2019-12-19
      回复
    • 白玉雄
      白玉雄
      2020-06-30回复见相非相
      你好,你的 encoding 设置成什么值?
      2020-06-30
      回复
  • 老张
    老张
    2019-12-19

    你自查吧,我这边速度正常,

    2019-12-19
    有用
    回复 1
    • 见相非相
      见相非相
      2019-12-19
      小程序端代码在下面,PC上能跑通,但是真机运行根本连云函数都没有调用,有的手机可以,但是也很慢,是在同一网络下
      2019-12-19
      回复
  • o0o有脾气的酸奶
    o0o有脾气的酸奶
    2019-12-19

    猜不到

    2019-12-19
    有用
    回复
  • 我是小肥
    我是小肥
    2019-12-19

    这么讲,大家都不明白的。没代码,没环境。

    云调用没起效,去看文档。

    chooseimage这个是不是你自己的网速特别导致上传慢?

    2019-12-19
    有用
    回复 5
    • 见相非相
      见相非相
      2019-12-19
      小程序端代码在下面,PC上能跑通,但是真机运行根本连云函数都没有调用,有的手机可以,但是也很慢,都是在同一网络下
      2019-12-19
      回复
    • 我是小肥
      我是小肥
      2019-12-19回复见相非相
      wx.getFileSystemManager().readFile({
                              filePath: file,
                              success: res => {

      你这个是异步操作,for循环这么快。你要用:readFileSync来试试吧,因为你说有时候可以有时候慢。
      不知道是不是这原因,你得自查加试出来才行。你说云函数不执行。如果循环快。都是异步操作。有可能导致这样的情况吧。
      2019-12-19
      回复
    • 见相非相
      见相非相
      2019-12-19回复我是小肥
      我是看了云函数调用日志,再异步也不会几分钟过去了还没执行吧。另外如果用同步操作岂不是会更卡,我只是顺序读取文件,读取之后的网络请求用异步是合理的。还是说读取数据那里有问题??
      2019-12-19
      回复
    • 我是小肥
      我是小肥
      2019-12-19回复见相非相
      你这个是操作同一个数据 。大哥。你操作他9次。。。。你觉得机器会显示什么给你啊?虽然不知道是不是这个原因。但是我觉得方向应该是对的吧。
      2019-12-19
      回复
    • 见相非相
      见相非相
      2019-12-19回复我是小肥
      操作的不是同一个文件,是9个文件中的每一个单独拿出来操作。我已经找到原因了,加上编码就可以了。还是谢谢你
      2019-12-19
      回复
登录 后发表内容
问题标签