vue选择本地文件

需求:通过页面的按钮实现本地文件的选择(以选择歌曲为例)。

思路:利用原生input的type="file"来实现。

1.先自定义上传按钮

//HTML部分
<div class="p10 bs mb10" style="height: 40px">
  <el-button type="text" size="small" @click="triggerFileInput">
    选择歌曲
  </el-button>
  <span class="f12 ml10">请先选择本地音乐!!!</span>
  <input
    ref="audioInput"
    style="display: none; height: 10px"
    type="file"
    @change="handleFileSelect"
    multiple
    accept="audio/*"
  />
</div>


//input的点击事件转移到自定义的按钮上面
triggerFileInput() {
  this.$refs.audioInput.click();
},

2.获取上传数据<通过input的change事件可实现>

// 添加本地音乐
handleFileSelect(event) {
  const files = event.target.files;
  this.selectedFiles = JSON.parse(JSON.stringify(musicList));
  this.fileUrl = null;
  for (let i = 0; i < files?.length; i++) {
    const file = files[i];
    const reader = new FileReader();
    reader.onload = (e) => {
      const fileObj = {
        name: file.name,
        url: e.target.result,
        // lrc: null,
        lrcList: [],
      };
      this.selectedFiles.push(fileObj);
    };
    reader.readAsDataURL(file);
  }
},

这里将选择的歌曲处理格式之后存放进selectedFiles的数组,以便后续操作。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值