uniapp文件选择上传压缩1M以内
时间: 2023-08-08 13:08:53 浏览: 173
在uniapp中,你可以使用uni-app的内置组件`uni.chooseImage`来实现文件选择上传。但是要控制上传文件的大小,你需要在选择文件后进行压缩。
以下是一个示例代码,可以选择图片文件并压缩到指定大小以内:
```javascript
// 选择图片文件
uni.chooseImage({
count: 1, // 最多选择1张图片
success: function (res) {
const tempFilePaths = res.tempFilePaths;
const tempFilePath = tempFilePaths[0];
// 压缩图片
uni.compressImage({
src: tempFilePath,
quality: 80, // 压缩质量,范围为0-100
success: function (res) {
const compressedFilePath = res.tempFilePath;
// 判断压缩后的文件大小是否小于1M
uni.getFileInfo({
filePath: compressedFilePath,
success: function (res) {
const fileSize = res.size / 1024; // 转换为KB
if (fileSize <= 1024) {
// 文件大小符合要求,可以进行上传操作
// TODO: 在这里添加你的上传逻辑
console.log(compressedFilePath);
} else {
// 文件大小超过1M,提示用户重新选择
uni.showToast({
title: '请选择小于1M的图片',
icon: 'none'
});
}
},
fail: function () {
// 获取文件信息失败
uni.showToast({
title: '获取文件信息失败',
icon: 'none'
});
}
});
},
fail: function () {
// 压缩图片失败
uni.showToast({
title: '压缩图片失败',
icon: 'none'
});
}
});
},
fail: function () {
// 选择图片失败
uni.showToast({
title: '选择图片失败',
icon: 'none'
});
}
});
```
请根据你的实际需求修改代码中的上传逻辑和提示信息。这段代码会先选择图片文件,然后对选择的图片进行压缩,再判断压缩后的文件大小是否小于1M。如果文件大小符合要求,则可以执行上传操作。
阅读全文