首页 > 其他分享 >直播app开发搭建,Vue Element UI Upload 上传多张图片

直播app开发搭建,Vue Element UI Upload 上传多张图片

时间:2023-05-29 14:11:23浏览次数:55  
标签:Vue console log app Upload file return 上传 图片

直播app开发搭建,Vue Element UI Upload 上传多张图片

<template>
  <div>
    <el-card>
      <h1>轮播图 - 图片上传管理</h1>
      <el-divider></el-divider>
      <!--注意:使用 :model="uploadImgForm" 不要使用 v-model="uploadImgForm"-->
      <el-form ref="formRef" :model="uploadImgForm">
        <el-form-item label="" prop="productImg">
          <!-- action : 上传的地址 -->
          <!-- on-preview: 点击图片时的回调 -->
          <!-- on-remove: 删除图片后的回调 -->
          <el-upload
            ref="upload"
            action="/smoke_product/xxxxxxxxxx
            :auto-upload="false"
            list-type="picture-card"
            :on-preview="handlePreview"
            :on-remove="handleRemove"
            :on-change="uploadImage"
            :file-list="showFiles"
          >
            <i></i>
          </el-upload>
          <!-- 预览图片 -->
          <el-dialog :visible.sync="dialogVisible" size="tiny">
            <img width="100%" :src="dialogImageUrl" alt />
          </el-dialog>
        </el-form-item>
      </el-form>
      <div>
        <el-button type="primary" @click="submitForm()">上传</el-button>
        <el-button @click="dialogFormVisible = false">取 消</el-button>
      </div>
    </el-card>
  </div>
</template>
<script>
import { uploadLoopImage } from "../../api/equipment";
export default {
  data() {
    return {
      dialogImageUrl: "",
      dialogVisible: false,
      uploadImgForm: {
        productImg: "",
      },
      file: [], // 上传图片时,改变存放改变列表里面的图片数组
      showFiles: [], // 存放图片的数组
      newFiles: [], // 存放最新图片的数组
    };
  },
  methods: {
    // 删除图片
    handleRemove(file, fileList) {
      console.log(file, fileList);
    },
    // 点击图片
    handlePreview(file) {
      // console.log("file", file);
      this.dialogImageUrl = file.url;
      this.dialogVisible = true;
    },
    // 上传图片
    uploadImage(file, fileList) {
      this.file = fileList; //主要用于接收存放所有的图片信息
      //限制上传文件为2M
      let sizeIsSatisfy = file.size < 2 * 1024 * 1024 ? true : false;
      if (sizeIsSatisfy) {
        return true;
      } else {
        this.fileSizeIsSatisfy = true;
        return false;
      }
    },
    //提交form表单
    submitForm() {
      this.$refs.formRef.validate((valid) => {
        if (valid) {
          if (this.file.length <= 0) {
            this.$message.error("请至少上传一个文件!");
            return;
          }
          if (this.fileSizeIsSatisfy) {
            this.$message.error("上传失败!存在文件大小超过2M!");
            return;
          }
          this.processFile(); //处理files的数据变成键值对的形式   返回newFiles这个数组
          console.log(this.newFiles);
          var param = new FormData(); // FormData 对象
          this.newFiles.forEach((fileItem) => {
            console.log(fileItem.imgFile);
            var list = fileItem;
            var file = list.imgFile;
            /**
             * 注意:
             *  "file" 这个名字一定要和 后台的一样
             */
            param.append("file", file); // 文件对象
          });
          // console.log(param)
          uploadLoopImage(param).then(
            (res) => {
              console.log(res); // 上传成功的 图片地址
            },
            (error) => {
              console.log(error);
            }
          );
        } else {
          console.log("error submit!!");
          return false;
        }
      });
    },
    //全部的图片添加到 newFiles中
    processFile() {
      this.file.forEach((item) => {
        let objFile = {};
        objFile.title = "file";
        objFile.imgFile = item.raw;
        this.newFiles.push(objFile);
      });
    },
  },
};
</script>
<style scoped>
.el-card {
  margin-top: 10px;
}
.el-form {
  margin-top: 10px;
}
</style>

​以上就是直播app开发搭建,Vue Element UI Upload 上传多张图片,更多内容欢迎关注之后的文章

 

标签:Vue,console,log,app,Upload,file,return,上传,图片
From: https://www.cnblogs.com/yunbaomengnan/p/17440259.html

相关文章

  • vue-封装组件-超出部分限制...,并且提示
    显示效果 代码:<template><divclass="tip"><el-tooltip:content="content"placement="top"width="400":disabled="!isShowTooltip"><spanclass="me......
  • uniapp安卓选择文件
    引用import{pickFile}from'@/js/common/pickFile.js'使用pickFile.PickFile(function(audioSrc){console.log(audioSrc)_this.audioSrc='file://'+audioSrc;//_this.audioSrc='https://img-cdn-qiniu.dcloud.net.cn/......
  • vue中el-select 多选限制条件(根据不同选项进行不同可选可不选)
    首先看一个数据结构:1:无缺陷2:有缺陷-》缺陷1,缺陷2,缺陷33:审核不通过把它们集成到一个平面数据,进行下拉所选就变成了:1:无缺陷,2:审核不通过,3:缺陷一,4:缺陷二,5:缺陷三。因为字典项是个平面的,所以在类似的大批量的情况下,有缺陷这个类如果还按照这种结构除非自己去归类。想要直接映射到......
  • vue3学习中使用vue-router@4的问题Invalid VNode type: undefined (undefined)
    首先是按照常规的箭头函数引入的方法,结果报一下错误,且页面报错constHelloWorld=()=>import('../components/HelloWorld.vue'); 解决办法import{defineAsyncComponent}from'vue'constHelloWorld=defineAsyncComponent(()=>import('../components/HelloWorld.vue......
  • uniapp避坑指南-页面滚动
    uniapp避坑指南-页面滚动需求描述做一个类似于word目录跳转功能,分成两个页面:目录页和详情页。目录页是一个列表,详情页是一个很长的的由很多pdf图片组成的上下滚动的页面,要求实现点击目录页跳转到详情页指定位置。功能实现主要使用uni.pageScrollTo这个api。我的工程是cli创建......
  • Planar Odometry from a Radial Laser Scanner. A Range Flow-based Approach(1)论文解
    激光光流里程计的基本理解:(1)类比图像光流,假设光强度不变,图像是每个像素点,像素包含灰度值;激光光流,假设障碍物不动,光流是激光范围内的激光点,每个激光点包含距离和角度信息(2)图像信息求导,得到光强度;激光光流信息求导,得到速度(距离的速度,角度的速度),并可以用分解到笛卡尔坐标系下的速度......
  • 循环依赖导致编译或者服务启动报错问题:The dependencies of some of the beans in the
    错误如图: 我的是服务器启动服务时报错:***************************APPLICATIONFAILEDTOSTART***************************Description:Thedependenciesofsomeofthebeansintheapplicationcontextformacycle报错原因:两个类相互引用对方,导致Spring在初始化b......
  • uniapp避坑指南-图片预览
    uniapp避坑指南-图片预览(本地预览)需求描述有一个类似以下的数组,通过v-for循环,现在需要在用户点击图片后使用uniapp的图片预览Api。//view<viewv-for:'(item,index)inpicList':key="index"><image:src="item.url"@click='imgPreview(item.url,id)'>......
  • Qt+QtWebApp开发笔记(四):http服务器使用Session和Cookie实现用户密码登录和注销功能
    前言  前面实现了基础的跳转,那么动态交互中登录是常用功能。  本篇实现一个动态交互的简单登录和注销功能,在Qt中使用Session和Cookie技术。 Demo  下载地址  链接:https://pan.baidu.com/s/1nkmsHgr-11Khe9k6Ntyf_g?pwd=1234 Html处理用户输入Sessi......
  • flask-app02
    移动端开发相关概念APP类型 NativeAPPNativeAPP又称原生APP,就是我们平时说的手机/桌面应用软件。原生APP是针对IOS、Android、Windows、鸿蒙等不同的手机操作系统要采用不同的语言和框架进行开发出来的,通常是由“服务器数据+APP应用客户端”两部份构成。实现技术:iOS......