uniapp中配合uview ui 的u-upload组件 如何在上传之前进行图片压缩
时间: 2024-01-17 17:17:47 浏览: 223
在uniapp中,可以使用uni-image-picker插件来实现图片选择和压缩的功能。首先,需要在项目中安装uni-image-picker插件:
```
npm install uni-image-picker --save
```
然后,在需要使用图片上传功能的页面中引入u-upload组件和uni-image-picker插件:
```
<template>
<div>
<u-upload
:upload-url="uploadUrl"
:max-count="maxCount"
:upload-before="beforeUpload"
:upload-success="onSuccess"
:upload-error="onError"
:upload-complete="onComplete"
>
<u-button type="primary">选择图片</u-button>
</u-upload>
</div>
</template>
<script>
import uniImagePicker from 'uni-image-picker';
export default {
data() {
return {
uploadUrl: 'your upload url',
maxCount: 1,
};
},
methods: {
beforeUpload(files) {
return new Promise((resolve, reject) => {
uniImagePicker.compressImage({
files: files,
quality: 80,
success: res => {
resolve(res.tempFilePaths);
},
fail: err => {
reject(err);
},
});
});
},
onSuccess(response) {
console.log(response);
},
onError(err) {
console.log(err);
},
onComplete() {
console.log('upload complete');
},
},
};
</script>
```
在beforeUpload方法中,使用uniImagePicker.compressImage将选择的图片进行压缩,并将压缩后的图片路径返回给u-upload组件进行上传。其中quality参数表示压缩质量,可以根据需要进行调整。
注意:在使用uniImagePicker插件进行图片压缩时,需要将压缩后的图片路径返回给u-upload组件进行上传。因此,需要在beforeUpload方法中返回一个Promise对象,并在Promise的resolve方法中返回压缩后的图片路径。
阅读全文