element upload上传单张图片,效果同多图

2023-11-08

效果如图:
这里写图片描述
这里写图片描述

<template>
    <div class="flex-img">
        <div class="el-upload-list el-upload-list--picture-card" v-show="hideShow">
            <div class="el-upload-list__item is-success">
                <img class="flex-img__image" :src="image">
                <label class="el-upload-list__item-status-label">
                    <i class="el-icon-upload-success el-icon-check"></i>
                </label>
                <span class="el-upload-list__item-actions">
                    <span class="el-upload-list__item-delete">
                        <i class="el-icon-delete" @click.stop="handleRemove()"></i>
                    </span>
                </span>
            </div>
        </div>
        <el-upload
                class="image-uploader"
                :action="uploadUrl"
                :show-file-list="false"
                accept="image/jpeg,image/jpg,image/png"
                :on-success="imageUploadSuccess"
                :before-upload="beforeUpload"
                v-show="!hideShow">
            <i class="el-icon-plus"></i>
        </el-upload>
        <!--<div slot="tip" class="el-upload__tip">尺寸宽度不低于640,高度不限制,支持jpg、png格式,1张上限</div>-->//可以写在这里,也可以写在父组件里,这里我是写在父组件里的
    </div>
</template>
<script>
    export default {
        props: ['image', 'clearList'],
        data() {
            return {
                uploadUrl: `http://xxxxxxxx`,//图片上传网址
                file: this.image ? this.image : '',
            };
        },
        watch: {
            image(value) {
                this.file = value
                console.log('爷爷', value)
            },
            clearList() {
                this.file = '';
            },
            file(value) {
                console.log('来了', value)
                const list = value;
                this.$emit('update:image', list);
            }
        },
        computed: {
            hideShow() {//当图片多于一张的时候,就隐藏上传框
                return this.file === '' ? false : true
            }
        },
        methods: {
            imageUploadSuccess(response) {
                const {data: {url}} = response
                this.file = url;
            },
            beforeUpload(file) {
                const imageSize = file.size / 1024 / 1024 < 1;//上传图片大小不超过1M
                if (!imageSize) {
                    this.$message.error('上传封面大小不能超过 1MB!');
                }
                return imageSize;
            },
            handleRemove() {
                this.file = '';
            },
        }
    };
</script>

<style scoped>
    .flex-img {
        display: flex;
    }

    .image-uploader {
        background-color: #fbfdff;
        border: 1px dashed #c0ccda;
        border-radius: 6px;
        -webkit-box-sizing: border-box;
        box-sizing: border-box;
        width: 148px;
        height: auto;
        cursor: pointer;
        line-height: 146px;
        vertical-align: top;
        text-align: center
    }

    .image-uploader {
        font-size: 28px;
        color: #8c939d;
    }

    .image-uploader .el-upload:hover {
        border-color: #409EFF;
    }

    .flex-img__image {
        width: 146px;
        height: auto;

        border-radius: 6px;
    }
</style>
<style>
    .disabled {
        display: none;
    }

    .el-upload--picture-card {
        height: auto
    }

    .el-upload-list--picture-card .el-upload-list__item {
        height: auto;
    }

    .el-upload-list--picture-card .el-upload-list__item {
        overflow: hidden;
        background-color: #fff;
        border: 1px solid #c0ccda;
        border-radius: 6px;
        -webkit-box-sizing: border-box;
        box-sizing: border-box;
        width: 148px;
        height: auto;
        margin: 0 8px 8px 0;
        display: inline-block;
    }

    .el-upload-list__item.is-success .el-upload-list__item-status-label {
        display: block;
        position: absolute;
        right: -15px;
        top: -6px;
        width: 40px;
        height: 24px;
        background: #13ce66;
        text-align: center;
        -webkit-transform: rotate(45deg);
        transform: rotate(45deg);
        -webkit-box-shadow: 0 0 1pc 1px rgba(0, 0, 0, 0.2);
        box-shadow: 0 0 1pc 1px rgba(0, 0, 0, 0.2);
    }

    .el-upload-list--picture-card .el-upload-list__item-actions {
        position: absolute;
        width: 100%;
        height: 100%;
        left: 0;
        top: 0;
        cursor: default;
        text-align: center;
        color: #fff;
        opacity: 0;
        font-size: 20px;
        background-color: rgba(0, 0, 0, 0.5);
        -webkit-transition: opacity .3s;
        transition: opacity .3s;
    }
</style>

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

element upload上传单张图片,效果同多图 的相关文章

  • 如何触发Uploadify onError 事件处理程序?

    我在用上传 http www uploadify com 上传文件 问题是 我需要通知用户处理这些文件期间出现的任何错误 上传有onError onComplete and onAllComplete事件处理程序 但我不知道如何触发这些事件
  • PHP 中的安全用户图像上传功能

    我正在为我的网站实现一个基于用户的图像上传工具 系统应允许任何用户仅上传 JPEG 和 PNG 文件 当然 我担心安全性 所以我想知道许多比我聪明的人对以下允许上传的检查有何感受 1 首先将 PHP 中允许的文件扩展名列入白名单 仅允许 P
  • Windows mobile C# 项目中将文件上传到服务器

    我们设置了服务器和 Windows 移动设备作为客户端 在服务器 CSI 脚本中 准备好接受来自客户端的单个文件 在Desktop中我们使用WebClient UploadFile方法将文件上传到服务器 但是在Windows Mobile中
  • 使用 PHP 从 S3 获取视频并上传到 YouTube

    我有一些代码可以将视频文件上传到 YouTube yt new Zend Gdata YouTube httpClient create a new VideoEntry object myVideoEntry new Zend Gdata
  • 使用python(谷歌应用程序引擎)获取上传文件的名称和扩展名

    我正在使用表单将文件上传到谷歌应用程序引擎并将它们存储在数据存储中 我还想存储原始文件名和扩展名以供演示之用 有没有办法从发布服务器端检索此数据 或者只能在客户端收集并作为单独的字段发送 例如http www tinyurl com 5jy
  • PHP Ajax上传进度条

  • YouTube API 身份验证 - Iphone

    我正在尝试使用 youtube api 的示例代码上传视频 当我按下上传按钮时 进度条完成其过程 但是一旦到达终点我就会收到错误 错误描述如下 YouTubeTest 2149 f803 错误 错误 Domain com google GD
  • php 如何使用 getimagesize() 检查上传时的图像类型[重复]

    这个问题在这里已经有答案了 可能的重复 GetImageSize 在应该返回 FALSE 时没有返回 FALSE https stackoverflow com questions 10464948 getimagesize not ret
  • 在客户端将大文件(> 2GB)压缩为 ZIP

    我使用构建上传工具node js and socket io 因为他们通常会上传令人难以置信的巨大文件 而普通的上传表单将无法工作 问题是他们想在发送之前将文件压缩成zip 以提高传输效率 我一直在研究压缩方法 例如JSZip http s
  • 上传非常大的文件(>5GB)

    我需要你的帮助 我想用 HTML JQuery 和 PHP 创建一个上传脚本 是否可以编写一个可以上传非常大的文件 gt 5 GB 的脚本 我已经尝试使用 FileReader FormData 和 Blobs 但即使使用这些 我也无法上传
  • 上传进度条 Java Servlet?

    我想使用 servlet 显示上传进度条 我尝试过Ajax iFrame 技术 页面没有重新加载 文件也被上传 但是 进度条没有出现 有没有可用于 javaservlts 的 jQuery 进度插件 Thanks 我强烈推荐jQuery 上
  • Vue.js + Element UI:在更改时获取“event.target”

    我无法获取在事件处理程序中触发事件的 html 字段 在 javascript 中是event target 我有一个表格 附加到更改事件函数的输入元素 管理更改事件的函数 我的代码如下 var Main methods change pa
  • HTML/CSS - 使用图像作为输入类型=文件

    如何使用此图像 http h899310 devhost se proxy newProxy uplfile png http h899310 devhost se proxy newProxy uplfile png 而不是常规的
  • 无法上传大于 8MB 的文件

    我正在尝试制作一个文件上传脚本 并且我已经为这个问题苦苦挣扎了一段时间 我已阅读并尝试了与此相关的所有答案 但无济于事 这是我在 php 中尝试过的 文件名 file uploads On upload max filesize 100M
  • xhr 响应 for 循环不起作用

    我有 xhr 和 for 循环 它的工作非常罕见 for var i 0 i lt this files length i var xhr new XMLHttpRequest xhr upload onprogress function
  • FastAPI UploadFile 与 Flask 相比慢

    我创建了一个端点 如下所示 app post report upload def create upload files files UploadFile File try with open files filename wb as wf
  • php同时上传最大文件数

    我正在使用标签 用于使用 php 上传多个文件 我注意到 如果我选择超过 20 个文件 php 只会上传前 20 个文件 有没有办法扩大这个限制 这个限制被添加到PHP 5 2 12 https www php net releases 5
  • 使用 PHP 上传、调整图像大小并裁剪图像中心

    我想要创建一个非常非常基本的上传 调整大小和裁剪 PHP 脚本 其功能与 Twitter 用于上传头像图片的方法相同 无论如何我最后检查过 我希望脚本拍摄任何尺寸的图像 将最短边的大小调整为 116 像素 然后裁剪顶部和底部 如果是横向 则
  • Element-UI:如何增加按钮的图标大小?

    我只是显示一个像这样的按钮
  • 如何在上传图像文件时禁用捕获(在ipad上使用safari)

    我想在 ipad 上使用 safari 上传图像 这是我的 html 代码

随机推荐

  • 使用正则表达式获取原始图片

    使用正则表达式适合于页面源码返回JSON数据 无论是在HTML里还是在
  • C++容器——list的模拟实现

    目录 一 list的基本结构 二 接下来就是对list类构造函数的设计了 三 链表数据的增加 四 接下来就是迭代器的创建了 四 简单函数的实现 五 构造与析构 六 拷贝构造和赋值重载 传统写法 现代写法 七 迭代器模板类型 一 list的基
  • sshpass工具+ssh登录方式

    自动登录 ssh工具 sshpass 一般用在sh脚本中 无须再次输入密码 本机known hosts文件中有的主机才能生效 它允许你用 p 参数指定明文密码 然后直接登录远程服务器 它支持密码从命令行 文件 环境变量中读取 yum ins
  • 基于相关性(NCC)的模板匹配Halcon

    一 原理 归一化相关性 NCC normalization cross correlation 顾名思义 就是用于归一化待匹配目标之间的相关程度 注意这里比较的是原始像素 通过在待匹配像素位置p px py 构建3 3邻域匹配窗口 与目标像
  • Leet14. 最长公共前缀

    编写一个函数来查找字符串数组中的最长公共前缀 如果不存在公共前缀 返回空字符串 示例 1 输入 strs flower flow flight 输出 fl 示例 2 输入 strs dog racecar car 输出 解释 输入不存在公共
  • 经验:初次接触全差分放大器时易犯的错误

    经验 初次接触全差分放大器时易犯的错误 更新历史 201901222 首次发布 本人当年第一次接触全差分放大器时 曾犯过一个低级的错误 导致对全差分放大器进行PSPICE仿真时 输出的波形总是不对 在后来的日子里 不止一次地看到其他人犯相同
  • GPT-3不算机器学习算法创新?2020年AI顶会最佳论文榜单引发激烈争论

    贾浩楠 发自 凹非寺 量子位 报道 公众号 QbitAI 2020年的最后一天 来回顾一下今年所有AI顶会的最佳论文吧 今年 顶会的最佳论文 既有ECCV的 2D变3D 的NeRF 当然 也有今年引起轰动的GPT 3 它来自NeurIPS
  • openGL之API学习(一七八)glsl版本功能演变

    GLSL 120 增加 1 你可以在着色器中初始化数组 如下所示 1 2 float a 5 float 5 3 4 4 2 5 0 5 2 1 1 float b 5 float 3 4 4 2 5 0 5 2 1 1 然而 即使使用GL
  • 从数据库中读取时间相差八个小时及格式不正确问题

    前端从数据库中读取时间数据的时候 需要关心的有格式问题和时间不一致问题 1 格式问题 有时读取时间数据是一长串的long类型数字 此数字表示的是自从公元年开始到现在所过的时间长度 此时在domain中 需要观察自己书写的时间对应类型是否写成
  • intel性能测试工具VTune的功能和用法介绍

    转自 https blog csdn net WY stutdy article details 79106501 https software intel com en us node 256997 1 VTune介绍 VTune可视化性
  • springboot将http改造成https

    springboot的项目天然的就是http的 但是有时候客户觉得http不安全 想要使用https的请求访问怎么处理 话不多少 上重点 https是对http进行ssl加密的一种协议 简单来说就是更安全 那么要怎么做呢 首先要生成证书 这
  • 看板的六大实践学习总结

    这次活动主要是学习看板的实践 看板的六大实践介绍如下 可视化 可视化价值项和价值流 story和它的流动 将问题和 瓶颈也在看板上可视化 可激发团队协作 限制在制品 通过限制各阶段的在实现的story 来加速流动 避免造成 交通 阻塞 考虑
  • 【C++】基础知识点回顾 中:函数重载、引用和内联函数

    前言 上篇文章我们介绍了C 基础知识中的命名空间 输入输出语句和缺省参数 上篇文章点击这里 今天 我们就来学习函数重载与引用 函数重载 定义 在编写代码时 当出现多个函数名相同的函数时 C 提供了一种方式 函数重载 使得当人们想使用哪个函数
  • CentOS7.x离线安装node及cnpm

    一 安装node 1 获取安装包放在 usr local 下面 链接 https pan baidu com s 1PuLYfZNf4stMKCh adv8zQ 提取码 z6ud 复制这段内容后打开百度网盘手机App 操作更方便哦 2 解压
  • 【JMeter03】登录接口解决方案

    个人站点 测试开发者https www devtester cn 1 解决验证码问题 在登录接口中 需要填写验证码 虽然是传统的图片型密码 可以尝试使用OCR方法识别 但对于接口测试 包括之后的UI测试 而言并不需要在验证码上大费周章 尤其
  • 毕业设计 - 基于Stm32的家庭智能监控系统 - 单片机 图像识别 人体检测 AI

    hr style border solid width 100px height 1px color 000000 size 1 quot 0 前言 这两年开始毕业设计和毕业答辩的要求和难度不断提升 传统的毕设题目缺少创新和亮点 往往达不到
  • 慕课网实战项目《WebAPP书城整站开发》笔记六:字体面板中“背景”切换的交互开发

    推荐IMOOC实战课程 WebApp书城整站开发 效果图 任务分解描述 本效果需要实现的是图中点击字体按钮后弹出一个可以设置字体颜色和大小的面板 点击面板上的 大 和 小 可以设置字体的大小 已完成 点击面板上的颜色圆圈可以切换阅读器的背景
  • Altium Designer常见问题整理(持续更新)

    Altium Designer DRC检查报告无法定位PCB具体错误位置 在AD中使用设计规则检查DRC 出具的PCB报告点击错误信息无法定位到具体错误位置 使用AD内置打开和浏览器打开均无效 原因 原理图与PCB工程文件存放路径存在中文导
  • python3.8安装tensorflow_python安装TensorFlow吐血整理

    1 安装特定版本的TensorFlow 1 pip install tensorflow gpu 1 9 0 2 pip install tensorflow gpu 必须用命令 1 才能安装想要的新版本 命令 2 只会安装TensorFl
  • element upload上传单张图片,效果同多图

    效果如图