小程序 图片转base64然后上传的坑点

Posted 过客秋枫

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了小程序 图片转base64然后上传的坑点相关的知识,希望对你有一定的参考价值。

图片上传要用到upng.js  

          const self = this

                const ctx = wx.createCanvasContext(‘myCanvas‘)
                const platform = wx.getSystemInfoSync().platform
                const imgWidth = 60, imgHeight = 60;
                wx.chooseImage({
                    success: res => {
                        //生成的图片临时路径画成canvas
                        ctx.drawImage(res.tempFilePaths[0], 0, 0, imgWidth, imgHeight)
                        ctx.draw(false, () => {
                            self.drawFinish = true
                            wx.canvasGetImageData({
                                canvasId: ‘myCanvas‘,
                                x: 0,
                                y: 0,
                                width: imgWidth,
                                height: imgHeight,
                                success: res => {
                                    if (platform === ‘ios) {
                                        // 兼容处理:ios获取的图片上下颠倒
                                        res = this.reverseImgData(res)
                                    }
                                    // 3. png编码
                                    let pngData = upng.encode([res.data.buffer], res.width, res.height)
                                    // 4. base64编码

                                    let base64 = wx.arrayBufferToBase64(pngData)
                                    debugger
                                    console.log(‘data:image/jpeg;base64,‘ + base64)
                                    this.setData({
                                        avatarUrl: ‘data:image/jpeg;base64,‘ + base64
                                    });
                                },
                                fail(res) {
                                    debugger
                                    console.log(res)
                                },
                            })
                        })
                    }
                })
这里要有几个坑
1.canvas那个标签如果隐藏,会出现转base64失败的情况
2.ios上图片需要翻转




以上是关于小程序 图片转base64然后上传的坑点的主要内容,如果未能解决你的问题,请参考以下文章

小程序本地图片文件在安卓机上显示时有时无的坑

微信小程序的坑坑

微信小程序上传图片并转化为base64格式

小程序云开发--云函数上传文件或图片 base64

微信小程序 上传图片

图片上传,文件流经过base64转码,最后转成字符串上传到服务器,通过HttpServletRequest的getParameter