小程序 图片转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转码,最后转成字符串上传到服务器,通过HttpServletRequest的getParameter