vue elemnt封装文件上传 +根据后台接口来上传文件

news/2025/1/15 18:43:58/

1.创建一个新的子页面,放文件上传

<template>  <div><el-uploadaction="https://jsonplaceholder.typicode.com/posts/"list-type="picture-card":on-preview="handlePictureCardPreview":on-remove="handleRemove"><i class="el-icon-plus"></i></el-upload><el-dialog :visible.sync="dialogVisible"><img width="100%" :src="dialogImageUrl" alt=""></el-dialog></div>
</template><script>
export default {data() {return {dialogImageUrl: '',dialogVisible: false};},methods: {handleRemove(file, fileList) {console.log(file, fileList);},handlePictureCardPreview(file) {this.dialogImageUrl = file.url;this.dialogVisible = true;}}}
</script> <style></style>

2.在父组件引入子组件 注册一下组件 来显示文件上传

import UploadImg from './UploadImg.vue'
export default {components:{TreeProductVue,UploadImg},
 <el-form-item label="商品图片" prop="image"><UploadImg></UploadImg></el-form-item>

效果图
在这里插入图片描述
1.封装接口并导出

export const uploadUrl= '/api/upload';//上传url地址

2.在刚才封装的页面导入这个这个接口

import {uploadUrl} from '@/api/base'

并把静态的换成动态的
静态的
action="https://jsonplaceholder.typicode.com/posts/"
动态的
:action="uploadUrl"

return {uploadUrl};

重要的地方:读到上传图片的地址,拿到这个回显
需要用到element 文件上传的 :on-success="handleSuccess"
上传的图片尽量使用字母或者数字命名的

// 上传成功----就是回显的意思handleSuccess(response, file, fileList){console.log(response,file, fileList,'成功');},

在这里插入图片描述
验证一下 通过后台域名+图片地址
在这里插入图片描述
验证完以后还得(静态写法)

   // 获取上传成功后的图片的地址let url = response.url.slice(7);console.log('url' ,"http://localhost:7788/" + url);

动态路径的 就在接口里边封装一个

export const host = 'http://localhost:7788';//封装前边域名

导入这个host模块

import {uploadUrl,host} from '@/api/base'

拼接使用

 // console.log('url' ,"http://localhost:7788/" + url);let imgUrl = host +'/'+urlconsole.log(imgUrl);

传递给父组件

// 给父组件传递过去this.$emit('sendimg',imgUrl)

父组件里边的子组件标签来接收

  <UploadImg @sendimg="sendimg"></UploadImg>
// 接收上传的图片路径sendimg(val){console.log(val,'val');this.ruleForm.image.push(val)},

完整代码

封装的文件上传

<template>  <div><!--   action="https://jsonplaceholder.typicode.com/posts/" --><el-upload:action="uploadUrl"list-type="picture-card":on-preview="handlePictureCardPreview":on-remove="handleRemove":on-success="handleSuccess"multiple><i class="el-icon-plus"></i></el-upload><!-- <el-dialog :visible.sync="dialogVisible"><img width="100%" :src="dialogImageUrl" alt=""></el-dialog> --></div>
</template><script>
import {uploadUrl,host} from '@/api/base'
export default {data() {return {uploadUrl,// dialogImageUrl: '',// dialogVisible: false};},methods: {// 上传成功----就是回显的意思handleSuccess(response, file, fileList){console.log(response,file, fileList,'成功');// 获取上传成功后的图片的地址let url = response.url.slice(7);// console.log('url' ,"http://localhost:7788/" + url);let imgUrl = host +'/'+urlconsole.log(imgUrl);// 给父组件传递过去this.$emit('sendimg',imgUrl)},handleRemove(file, fileList) {console.log(file, fileList);},handlePictureCardPreview(file) {this.dialogImageUrl = file.url;this.dialogVisible = true;}}}
</script> <style></style>

父组件接收子组件的事件

  <el-form-item label="商品图片" prop="image"><UploadImg @sendimg="sendimg"></UploadImg></el-form-item>
ruleForm: {image:[],},
 // 接收上传的图片路径sendimg(val){console.log(val,'val');this.ruleForm.image.push(val)},

http://www.ppmy.cn/news/1122863.html

相关文章

Firefox扩展目录

about:support 配置文件夹&#xff0c;打开文件夹。 附件组件&#xff0c;查看名称对应的ID extensions 目录查找 ID.xpi 复制出来&#xff0c;解压缩。

什么是IoT数字孪生?

数字孪生是资产或系统的实时虚拟模型&#xff0c;它使用来自连接的物联网传感器的数据来创建数字表示。数字孪生允许您从任何地方实时监控设备、资产或流程。数字孪生用于多种目的&#xff0c;例如分析性能、监控问题或在实施之前运行测试。从物联网数字孪生中获得的见解使用户…

uniapp项目实践总结(十九)版本更新和热更新实现方法

导语:当一个 APP 应用开发完成以后,就要上架应用商店,但有时候修改一些小问题或者推出一些活动,又不想频繁地提交应用商店审核,那么就可以使用应用内更新功能来进行应用的版本升级更新或热更新,下面就介绍一下实现的方法。 目录 准备工作原理分析实战演练案例展示准备工作…

linux之perf(5)record记录

Linux之perf(5)record统计 Author&#xff1a;Onceday Date&#xff1a;2023年9月23日 漫漫长路&#xff0c;才刚刚开始… 注&#xff1a;该文档内容采用了GPT4.0生成的回答&#xff0c;部分文本准确率可能存在问题。 参考文档: Tutorial - Perf Wiki (kernel.org)perf-re…

kubeadm搭建k8s高可用集群(keepalived+nginx+3master)

目录 前言服务器准备架构讲解环境初始化安装keepalived软件安装nginx软件初始化k8s节点安装docker初始化master01节点的控制面板master02、master03节点加入集群node01、node02节点加入集群检查集群配置docker和kubectl命令补全创建应用验证集群功能验证master节点高可用方式二…

APP产品经理岗位的具体内容(合集)

APP产品经理岗位的具体内容1 1、负责项目产品团队的管理工作&#xff0c;对项目产品团队考核目标负责; 2、全面负责“工务园”所有产品&#xff0c;全方位负责其生命周期管理; 3、按照产品管理相关的计划和规范&#xff0c;对产品版本的更新及发布负责&#xff0c;完善产品的…

如何修复wmvcore.dll缺失问题,wmvcore.dll下载修复方法分享

近年来&#xff0c;电脑使用的普及率越来越高&#xff0c;人们在日常生活中离不开电脑。然而&#xff0c;有时候我们可能会遇到一些问题&#xff0c;其中之一就是wmvcore.dll缺失的问题。wmvcore.dll是Windows平台上用于支持Windows Media Player的动态链接库文件&#xff0c;如…

【精品资源】Java毕业设计攻略:从选题到答辩,一站式指南

导读&#xff1a; Java毕业设计是计算机科学与技术专业学生展示其编程能力、问题解决能力和创新思维的重要环节。这篇博客将为您提供一站式的Java毕业设计攻略&#xff0c;帮助您从选题到答辩&#xff0c;顺利完成毕业设计。 一、选题阶段 寻找灵感&#xff1a; 探讨热门技术如…