uniapp小程序canvas生成的base64格式的图片文件直接上传到服务器
在uniapp中,你可以使用uni.request
方法将base64格式的图片上传到服务器。以下是一个简单的示例代码:
// 假设base64Data是你的base64格式的图片数据
const base64Data = 'data:image/png;base64,...'; // 这里应该是你的base64字符串
// 将base64字符串转换为二进制数据
function base64ToBlob(base64Data) {
let arr = base64Data.split(','), mime = arr[0].match(/:(.*?);/)[1];
let bstr = atob(arr[1]);
let n = bstr.length;
let u8arr = new Uint8Array(n);
while (n--) {
u8arr[n] = bstr.charCodeAt(n);
}
return new Blob([u8arr], { type: mime });
}
// 创建FormData对象
let formData = new FormData();
// 将二进制数据添加到FormData中
formData.append('file', base64ToBlob(base64Data), 'image.png'); // 'image.png'是上传后的文件名
// 发送请求
uni.uploadFile({
url: '你的服务器地址', // 服务器接收上传文件的URL
files: [{
name: 'file', // 这里的name要和formData.append()中的name一致
filePath: formData
}],
success: (uploadFileRes) => {
console.log(uploadFileRes.data); // 输出服务器返回的数据
},
fail: (error) => {
console.error(error);
}
});
确保你的服务器能够处理multipart/form-data类型的POST请求,并且接收上传的文件。这段代码将会把base64编码的图片转换为二进制数据,然后通过uni.uploadFile
方法上传到服务器。
评论已关闭