Web前端input上传文件(type=“file“)

Html前端代码

 <div class="openBox">
          <p v-if="resourceArr.length">文件名:{{resourceArr[0].name}}</p>
          <div class="changeFile" @click="$refs['file'].click()">选择文件</div>
          <input type="file" ref="file" style="display:none" @change="fileSelect" :key="fileKey">
        </div>

JS前端代码

  fileSelect(e) {
      const vm = this;
      const files = this.$refs["file"]?.files;
      if (files) {
        files.forEach((file) => {
          const reader = new FileReader();
          reader.readAsDataURL(file);
          reader.onload = () => {
            if (vm.checked(file)) {
              vm.resourceArr[0] = {
                id: file.lastModified,
                name: file.name,
                size: file.size,
                type: "file", //or url default:url
                url: reader.result,
                data: file,
              };
              vm.fileKey = Math.random();
            }
            vm.fileKey = Math.random();
          };
          reader.onerror = () => {
            vm.$error(`获取文件失败`);
          };
        });
      } else {
        vm.$error(`获取文件失败`);
      }
    },
 /**
     * 简单文件校验
     */
    checked({ size, type }) {
      const vm = this;
      //单张文件大小校验
      if (size > vm.byteSize) {
        vm.$message({
          type: "warning",
          message: `单张上传不能超过${vm.size}M`,
        });
        return false;
      }
      //文件类型校验
      // if (!(new RegExp(vm.type.replace(/\W/g, '|')).test(type.toLowerCase()))) {
      //   vm.$message({
      //     type: 'warning',
      //     message: `上传文件仅支持${vm.type}类型`
      //   })
      //   return false
      // }
      return true;
    },

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值