uniapp封装一个上传图片的接口
时间: 2023-12-05 07:30:49 浏览: 99
当然可以!以下是一个示例的Uniapp图片上传组件的封装:
1. 创建一个名为`ImageUploader`的组件文件夹,包括以下文件:
- `ImageUploader.vue`:组件主文件
- `ImageUploader.scss`:组件的样式文件
- `ImageUploader.js`:组件的逻辑处理文件
2. 在`ImageUploader.vue`文件中,编写组件的模板和样式:
```html
<template>
<div class="image-uploader">
<div class="preview" v-if="image">
<img :src="image" alt="Preview" />
</div>
<button class="upload-button" @click="openFilePicker">选择图片</button>
<input ref="fileInput" type="file" accept="image/*" @change="handleFileChange" hidden />
</div>
</template>
<style scoped lang="scss">
.image-uploader {
.preview {
img {
max-width: 100%;
height: auto;
}
}
.upload-button {
margin-top: 10px;
}
}
</style>
```
3. 在`ImageUploader.js`文件中,编写组件的逻辑处理:
```js
export default {
data() {
return {
image: null, // 选择的图片
};
},
methods: {
openFilePicker() {
this.$refs.fileInput.click();
},
handleFileChange(event) {
const file = event.target.files[0];
if (file) {
this.createPreview(file);
}
},
createPreview(file) {
const reader = new FileReader();
reader.onload = (event) => {
this.image = event.target.result;
};
reader.readAsDataURL(file);
},
},
};
```
4. 在需要使用图片上传组件的页面中,引入并使用`ImageUploader`组件:
```html
<template>
<div>
<image-uploader></image-uploader>
阅读全文