uni-app多图上传将图片转成base64,最终生成一个base64数组并传给后台
uni-app多图上传将图片转成base64,最终生成一个base64数组并传给后台
多图上传将图片转成base64的,最终需要一个base64的数组,把这个数组传给后台
4 回复
可以做,联系QQ:1804945430
承接H5、小程序、APP等外包:
经验丰富,做过多种类型项目,有案例可看;
整个项目外包可以找我(小团队接单,面向客户、产品);
只需要前端部分也可以找我(个人接单,面向服务端合作伙伴);
wechat(13070273424);
定制插件即可 联系微信 zhimitec
在处理 uni-app
多图上传并将图片转成 Base64 格式,最终生成一个 Base64 数组传给后台的任务时,你可以通过以下代码实现这一功能。以下是详细的实现步骤和代码示例:
- 选择图片:使用
uni.chooseImage
API 选择图片。 - 读取图片并转为 Base64:通过
uni.getFileSystemManager
读取图片文件并转为 Base64 编码。 - 生成 Base64 数组:将所有图片的 Base64 编码存储到一个数组中。
- 传给后台:通过
uni.request
将 Base64 数组传给后台。
// 选择图片并转为Base64数组
uni.chooseImage({
count: 9, // 最多可以选择的图片张数
success: (res) => {
const filePaths = res.tempFilePaths;
const base64Array = [];
filePaths.forEach((filePath) => {
const fs = uni.getFileSystemManager();
fs.readFile({
filePath,
encoding: 'base64',
success: (result) => {
// 去掉base64编码头部信息 data:image/png;base64,
const base64Data = result.data.replace(/^data:image\/\w+;base64,/, "");
base64Array.push(base64Data);
// 检查是否所有图片都已处理完毕
if (base64Array.length === filePaths.length) {
// 所有图片都已处理完毕,传给后台
uploadToBackend(base64Array);
}
},
fail: (err) => {
console.error('读取图片失败', err);
}
});
});
},
fail: (err) => {
console.error('选择图片失败', err);
}
});
// 上传Base64数组到后台
function uploadToBackend(base64Array) {
uni.request({
url: 'https://your-backend-api.com/upload', // 替换为你的后台API地址
method: 'POST',
data: {
images: base64Array
},
header: {
'Content-Type': 'application/json' // 根据后台要求设置请求头
},
success: (res) => {
console.log('上传成功', res.data);
},
fail: (err) => {
console.error('上传失败', err);
}
});
}
在这个示例中,我们首先通过 uni.chooseImage
选择图片,然后使用 uni.getFileSystemManager
读取图片文件并转为 Base64 编码。在所有图片处理完毕后,我们将 Base64 数组通过 uni.request
POST 请求传给后台。
请注意:
- Base64 编码会增大图片数据的大小,如果图片较大或数量较多,可能会导致请求时间过长或失败。因此,在生产环境中,建议根据需求选择适当的图片上传方式,比如直接上传图片文件而非 Base64 编码。
- 根据你的后台接口要求,可能需要调整请求的 URL、请求头和数据格式。