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

news/2024/9/15 22:48:23/

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; 探讨热门技术如…

电表智能管理系统-实现智能化、数字化的电力管理

随着信息技术的发展&#xff0c;智能电表已经成为了现代电力管理的重要组成部分。智能电表能够实时监测和记录用电量&#xff0c;自动控制用电&#xff0c;从而实现更加智能、高效的电力管理。 智能电表是一种能够自动监测和记录用电量&#xff0c;并能够自动控制用电的设备…

SLA中QPS、TP999等概念

文章目录 一、SLA概念二、TP9991.1 概念1.2 作用 三、QPS3.1 基本概念3.2 公式&#xff1a;3.3 数据库连接池 和 线程池处理请求区别3.4 粗估QPS的计算公式【不知道avg的情况下】 一、SLA概念 参考文档&#xff1a;SLA 二、TP999 1.1 概念 接口的响应TP99线的时间 TP99指的…

【计算机网络】IP协议(下)

文章目录 1. 特殊的IP地址2. IP地址的数量限制3. 私有IP地址和公网IP地址私有IP为什么不能出现在公网上&#xff1f;解决方案——NAT技术的使用 4. 路由5. IP分片问题为什么要进行切片&#xff1f;如何做的分片和组装&#xff1f;16位标识3位标志13位片偏移例子 细节问题如何区…

rk3399 linux4.19 ubuntu mpv播放概率性内核崩溃在vop_crtc_atomic_flush

现象&#xff1a;使用 mpv播放视频时&#xff0c;播放一段时间后内核core 环境&#xff1a; linux sdk版本&#xff1a;4.19.172 ubuntu18系统 验证&#xff1a; 1. /etc/mpv/mpv.conf 默认配置voxv 播放一段时间后&#xff0c;内核core 2. /etc/mpv/mpv.conf vogpu播放稳定…

Linux系统编程——总结初识Linux(常用命令、特点、常见操作系统)

文章目录 UNIX操作系统&#xff08;了解&#xff09;Linux操作系统主要特征Linux和unix的区别和联系什么是操作系统常见的操作系统Ubuntu操作系统Ubuntu安装linux下的目录的类型(掌握)shell指令shell指令的格式文件操作相关指令系统相关命令网络相关命令其他命令软件安装相关的…

OmniPlan Pro 4 for Mac:引领项目管理的创新与高效

OmniPlan Pro 4是一款强大且高效的项目管理工具&#xff0c;专为Mac用户设计。它提供了一套综合性的解决方案&#xff0c;帮助用户在Mac上便捷地进行项目规划、追踪和管理。凭借其直观的界面&#xff0c;用户可以快速上手&#xff0c;并且能充分利用这款工具的各种功能。 规划…

【云原生】kubernetes中pod(进阶)

目录 一、资源限制 业务cpu 内存 1.1CPU 资源单位 1.2 内存 资源单位 示例1 示例2&#xff1a; 二、健康检查&#xff1a;又称为探针&#xff08;Probe&#xff09; 2.1探针的三种规则 2.2 Probe支持三种检查方法 2.3示例 示例1&#xff1a;exec方式 示例3&#xf…

systemd Linux 发行版 antiX推出antiX 23 发布

导读基于 Debian “稳定 “分支的无 systemd Linux 发行版 antiX 的开发人员宣布推出 antiX 23。 这是该项目基于 Debian 12 的第一个版本&#xff1a;”antiX 23 ‘Arditi del Popolo’是基于 Debian ‘书虫’的新版本。 像往常一样&#xff0c;我们为 32 位和 64 位架构提供…

基于springboot+vue的入校申报审批系统

博主主页&#xff1a;猫头鹰源码 博主简介&#xff1a;Java领域优质创作者、CSDN博客专家、公司架构师、全网粉丝5万、专注Java技术领域和毕业设计项目实战 主要内容&#xff1a;毕业设计(Javaweb项目|小程序等)、简历模板、学习资料、面试题库、技术咨询 文末联系获取 项目介绍…

动静分离和前后端分离

动静分离和前后端分离 一、动静分离 侧重单体项目的静态资源分离 二、前后端分离 前后端完全分离

[Linux入门]---管理者操作系统

文章目录 1.操作系统概念2.设计操作系统的目的3.操作系统如何进行管理系统调用和库函数概念 1.操作系统概念 任何计算机系统都包含一个基本的程序集合&#xff0c;称为操作系统(OS)。笼统的理解&#xff0c;操作系统包括&#xff1a; 内核&#xff08;进程管理&#xff0c;内存…

最频繁被问到的SQL面试题

面试感叹失败的原因可能有很多&#xff0c;而做成的道路只有⼀条&#xff0c;那就是不断积累。纯手工的8291字的SQL面试题总结分享给初学者&#xff0c;俗称八股文&#xff0c;期待对新手有所帮助。 窗口函数题 窗口函数其实就是根据当前数据, 计算其在所在的组中的统计数据。…