uniapp 上传压缩图片 兼容h5和小程序的方法
在uniapp中,你可以使用uni.chooseImage来选择图片,然后使用uni.compressImage来压缩图片,最后使用uni.uploadFile来上传图片。以下是一个简单的示例代码:
// 选择图片
uni.chooseImage({
count: 1, // 默认9
sizeType: ['original', 'compressed'], // 可以指定是原图还是压缩图,默认二者都有
sourceType: ['album', 'camera'], // 可以指定来源是相册还是相机,默认二者都有
success: function (res) {
// 获取文件的临时路径
var tempFilePaths = res.tempFilePaths;
// 压缩图片
uni.compressImage({
src: tempFilePaths[0], // 图片路径
quality: 80, // 压缩质量,范围为0 - 100,100为不压缩
success: function (res) {
// 获取压缩后的图片路径
var compressedFilePath = res.tempFilePath;
// 创建上传任务
uni.uploadFile({
url: 'https://your-api-endpoint.com/upload', // 开发者服务器地址
filePath: compressedFilePath, // 要上传文件资源的路径
name: 'file', // 文件对应的key
formData: {
'user': 'test' // 其他表单信息
},
success: function (uploadFileRes) {
console.log(uploadFileRes.data); // 输出上传结果
},
fail: function (uploadFileErr) {
console.log(uploadFileErr); // 输出上传失败信息
}
});
},
fail: function (err) {
console.log(err); // 输出压缩失败信息
}
});
}
});
这段代码首先使用uni.chooseImage选择图片,然后使用uni.compressImage压缩图片,最后使用uni.uploadFile上传图片到服务器。这个过程是兼容H5和小程序的。
评论已关闭