# 图片批量上传

# 介绍

该图片上传样式与功能上参考了 QQ空间的相册上传功能;通过 el-dialog 弹窗的形式,展现图片选择模块,用户可批量选择图片,可对图片进行单个或者批量的上传处理。

# 目录结构

└─ src
   └─ components
      └─ PhotoUpload         # 图片批量上传
         ├─ index.js         # 
         └─ index.vue        # 上传弹窗组件

# 组件效果图

image.png

# 源码解析

文件上传使用 input type="file" 的形式,input 表单设置 display:none 不在页面中显示,通过文件选择按钮点击事件,触发自定义鼠标事件 MouseEvent,从而能够选择文件。
关于 MouseEvent 使用文档 (opens new window)

<!-- type="file" 表单为文件选择 -->
<!-- multiple 文件多选 -->
<!-- accept 接受文件类型 -->
<input
   type="file"
   name="file"
   multiple
   accept="image/png,image/jpg,image/jpeg,image/gif,image/bmp"
   ref="fileInput"
   class="upload-input"
   @change="fileChangeHandle"
/>
// 选择文件
chosenFileHandle() {
   // 自定义鼠标事件
   let evt = new MouseEvent("click", {
      bubbles: true,
      cancelable: true,
      view: window,
   });

   // 事件派发
   this.$refs.fileInput.dispatchEvent(evt);
},
上次更新: 6/24/2022, 12:10:54 AM