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的数组,以便后续操作。

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 前端无法像原生APP一样直接操作本地文件,否则的话打开个网页就能把用户电脑上的文件偷光了,所以需要通过用户触发,用...
    孙悟空SUN阅读 3,122评论 0 0
  • 前端无法像原生APP一样直接操作本地文件,否则的话打开个网页就能把用户电脑上的文件偷光了,所以需要通过用户触发,用...
    雷波_viho阅读 4,223评论 0 1
  • 本篇文章的主要目的是介绍本地文件相关 API 的使用,好的,废话不多说,下面直接开始。 基础的 File API ...
    ghwaphon阅读 6,758评论 3 4
  • 参考资料:极客时间《MySQL实战45讲》 1 基础架构 存储引擎层负责数据的存储和提取。其架构模式是插件式的,支...
    IM后海大鲨鱼阅读 4,125评论 0 0
  • 软件开发流程【了解】 网站开发制作流程:任何一个系统的开发都是一件非常复杂的事情,涉及的工作也都是方方面面的。一个...
    好像在哪见过你丶阅读 6,802评论 0 1