怎么在el-form展示图片
时间: 2024-05-08 17:22:35 浏览: 306
你可以在 `el-form` 中使用 `el-upload` 组件来上传图片,然后在表单中展示上传的图片。具体实现步骤如下:
1. 在 `el-form` 中使用 `el-upload` 组件,并设置 `type` 为 `image`,这样上传的文件就会被渲染为图片。
```html
<el-form>
<el-form-item label="图片上传">
<el-upload
class="avatar-uploader"
action="/upload"
:show-file-list="false"
:on-success="handleSuccess"
:before-upload="beforeUpload"
:headers="{ Authorization: token }"
:data="{ type: 'avatar' }"
:limit="1"
:type="'image'"
>
<img v-if="imageUrl" :src="imageUrl" class="avatar">
<i v-else class="el-icon-plus avatar-uploader-icon"></i>
</el-upload>
</el-form-item>
</el-form>
```
2. 在 `el-upload` 组件中设置 `:show-file-list="false"`,这样上传的文件就不会展示在文件列表中。
3. 使用 `v-if` 条件渲染展示上传的图片。在 `handleSuccess` 方法中获取上传成功后的图片地址,并将其赋值给 `imageUrl` 变量。
```js
data() {
return {
imageUrl: ''
}
},
methods: {
handleSuccess(res, file) {
this.imageUrl = URL.createObjectURL(file.raw);
},
beforeUpload(file) {
// 验证图片格式和大小等
}
}
```
4. 在 `img` 标签中使用 `:src="imageUrl"` 展示上传的图片。
注意:由于上传的图片是通过 URL.createObjectURL 方法生成的临时 URL,需要在组件销毁前手动释放资源,以避免内存泄漏。
```js
beforeDestroy() {
if (this.imageUrl) {
URL.revokeObjectURL(this.imageUrl);
}
}
```
阅读全文