uniapp - H5和微信小程序上传 base64 图片

1. 前言

在做订单评论的时候,需要图片上传,开始使用的 FormData 上传,但是后端一直获取不到上传的 file ,由于之前是使用 taro 开发的H5和微信小程序,所以对 uniapp 开发不是很熟悉,使用了创建 input 标签,然后设置属性,来获取图片,最后提交上传。结果发现还是提交不成功,最后发现在 taro 那边使用的将图片转换为 base64 ,然后再提交上传,就按照这个思路实现。

2. H5 将选择图片转 base64

2.1 使用 XMLHttpRequest 和 FileReader 实现图片转 base64
// H5端获取图片的base64
function getWebBase64 (filePath) {
  return new Promise((resolve, reject) => { 
    let xhr = new XMLHttpRequest();
		xhr.open('GET', filePath, true);
		xhr.responseType = 'blob';
		xhr.onload = function() {
			if (this.status === 200) {
				let fileReader = new FileReader();
				fileReader.onload = function(e) {
					resolve(e.target.result);
				}
				fileReader.onerror = reject;
				fileReader.readAsDataURL(this.response);
			}
		}
		xhr.onerror = reject;
		xhr.send();
  })
}
2.2 使用 fetch 和 FileReader 实现图片转 base64
// H5端获取图片的base64
function getWebBase64 (filePath) {
  return new Promise((resolve, reject) => { 
    fetch(filePath).then(fetchRes => {
      return fetchRes.blob()
    }).then(data => {
      let fr = new FileReader()
      fr.onload = function(){
        resolve(fr.result)
      }
     

你可能感兴趣的:(uniapp,uni-app,微信小程序,notepad++)