首页 > 其他分享 >原生上传

原生上传

时间:2023-02-18 09:34:29浏览次数:32  
标签:原生 files 100px param file 10px 上传

<template>
  <div style="display: flex;margin: 0 0 12px 0;flex-wrap: wrap;">
    <template v-if="files.length > 0">
      <div class="imgItem" v-for="(v, i) in files" :key="i">
        <el-image style="width: 100%;height: 100%;" :src="v" fit="cover"></el-image>
        <div class="delImg_box">
          <i class="el-icon-delete" @click="delImg(i)"></i>
        </div>
      </div>
    </template>
    <div class="selBox" @click="selImg" v-if="limits > files.length">
      <i class="el-icon-plus"></i>
      <input class="updataInput" ref="changeInput" type="file" @change="updataFile" accept=".jpeg,.jpg,.png" />
    </div>
  </div>
</template>

<script>
import { uploadFile } from '@/api/common'
export default {
  name: 'GrainSubsidyUiIndex',
  props: ['limits', 'urls'],
  data () {
    return {
      files: [], //初始展示
      imgUrlList: [], //返回
      mask: true
    }
  },
  watch: {
    urls () {
      this.files = this.urls
    },
    files () {
      this.$emit('imgChange', this.files)
    }
  },

  methods: {
    delImg (val) {
      this.files.splice(val, 1)
    },
    selImg () {
      this.$refs.changeInput.click()
    },
    async updataFile (e) {
      let file = e.target.files[0]
      if (['image/jpeg', 'image/png', 'image/jpg'].includes(file.type)) {
        if ((file.size / 1024 / 1024) < 2) {
          let param = new FormData()//创建form对象
          param.append("file", file)//为创建的form对象增加上传的文件
          param.append("appKey", "lbzd")//如果需要上传其他字段,在这里增加
          const { data } = await uploadFile(param)
          this.files.push(data.data.fileUrl)
        } else {
          this.$message({
            message: '上传图片大小不能超过2M!',
            type: 'warning'
          })
        }
      } else {
        this.$message({
          message: '请上传jpeg,png,jpg类型图片文件',
          type: 'warning'
        })
      }
    },
  },
}
</script>

<style lang="less" scoped>
.selBox {
  width: 100px;
  height: 100px;
  background: #F9F9F9;
  display: flex;
  align-items: center;
  justify-content: center;
  border: 1px solid #DEDEDE;

  cursor: pointer;

  i {
    font-size: 30px;
  }
}

.imgItem {
  width: 100px;
  height: 100px;
  margin: 0 10px 10px 0;
  border-radius: 10px;
  overflow: hidden;
  position: relative;
}

.delImg_box {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  display: flex;
  align-items: center;
  justify-content: center;
  opacity: 0;
  background: rgba(0, 0, 0, 0.5);
  transition: .3s;
  border-radius: 10px;
  overflow: hidden;

  i {
    font-size: 30px;
    color: #fff;
    cursor: pointer;
  }
}

.imgItem:hover .delImg_box {
  opacity: 1;
}


.updataInput {
  opacity: 0;
  z-index: -1;
  position: absolute;
}
</style>

标签:原生,files,100px,param,file,10px,上传
From: https://www.cnblogs.com/newBugs/p/17131969.html

相关文章

  • day12-SpringMVC文件上传
    SpringMVC文件上传1.基本介绍SpringMVC为文件上传提供了直接的支持,这种支持是通过即插即用的MultipartResolver实现的。spring用JacartaCommonsFileUpload技术......
  • SpringMVC09 - 文件的下载与上传
    文件下载ResponseEntity用于控制器方法的返回值类型,该控制器方法的返回值就是响应到浏览器的响应报文使用ResponseEntity实现下载文件的功能①浏览器触发下载<ath:href......
  • dokuwiki编辑器支持ppt上传
    ​ Chrome+IE默认支持粘贴剪切板中的图片,但是我要发布的文章存在word里面,图片多达数十张,我总不能一张一张复制吧?Chrome高版本提供了可以将单张图片转换在BASE64字符串的......
  • yunUI组件库解析:图片上传与排序组件yImgPro
    yunUI是笔者开源的微信小程序功能库。目前其中包含了一些复杂的功能组件。方便使用。未来它将分为组件、样式、js三者合为一体,但分别提供。本文所用代码皆来源于组件库中的......
  • 博客园本地上传markdown(自记)
    最近开始要写很多的博客,无奈之前每篇博客都要将本地的图片拖动上传一番,才能完整地发好一篇随笔。便STFW了一下,发现了好东西。记以自用。项目地址:https://github.com/do......
  • 记录uniapp-小程序文件上传问题
    1.支付宝文件上传问题 uni.uploadFile如果缺少fileType运行到微信没有问题,但是运行到支付宝会报错,需要补齐fileType2.接口返回需要注意,res.data为字符串,需要转换JSON......
  • odoo原生form表单改造成输入框
    引子:odoo作为快速搭建网站的框架,我们在利用它便捷高效功能的同时,有没有觉得这个页面,不太好看呢?今天我们一起来聊聊如果让odoo原生的form表单更美观更符合用户体验~ Od......
  • .NET 纯原生实现 Cron 定时任务,未依赖第三方组件
    常用的定时任务组件有Quartz.Net和Hangfire两种,这两种是使用人数比较多的定时任务组件,个人以前也是使用的Hangfire,慢慢的发现自己想要的其实只是一个能够根据Cron......
  • 使用nginx代理时上传图片413
    1、错误描述2、错误原因1.上传文件时,利用localhost访问系统,不会出现这个问题;用域名访问这个系统时,出现这个问题,提示是:请求实体太大由于Nginx反向代理服务器client_max_......
  • Java 文件上传
    一:配置springBoot上传文件限制spring:servlet:multipart:max-file-size:100MB#单个文件大小max-request-size:1024MB#总文件大小二:代码i......