基于vue的h5文件切片上传(获取文件md5,实现秒传、进度条实现)

template

<button @click="file"></button>
<label ref="upload"
       style="position: relative;">
  <input type="file"
         @change="selectFile"
         style="position: absolute; width: 1px; height: 1px; opacity: 0; z-index: -1;">
</label>

script

methods: {
    file() {
        // 模拟点击file input触发选择文件,注意:不能在任何方式的回调里面执行此语句
        this.$refs.upload.click()
    }
    selectFile(event) {
        // 调用上传方法,传入选择的文件对象
        this.uploadFile(event.target.files[0], () => {
            // upload-success
        })
        // 重置file input控件的值
        event.target.value = ''
    }
}

核心js文件

// uploadFile.js
import Vue from 'vue'
import SparkMD5 from 'spark-md5'

export default function() {
   

    // 将上传文件的方法挂载到vue的原型链上面
    Vue.
  • 1
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 5
    评论
文件切片上传是一种将大文件分割成多个小片段进行上传的方法,这种方式可以有效地提高文件上传的效率和稳定性。在Vue实现文件切片上传可以按照以下步骤进行: 1. 首先,需要在Vue项目中引入文件切片上传的插件或者封装的组件。可以选择一些已经成熟的插件,例如`vue-slice-upload`或`vue-slice-upload-component`。 2. 在Vue组件中,使用`<input type="file">`标签创建一个文件选择框,用于选择要上传文件。 3. 监听文件选择框的`change`事件,获取选中的文件。 4. 利用文件对象的`slice`方法将文件切分成小片段。可以根据切片的大小,将文件分成固定大小的块。可以选择每个块的大小,常见的大小为1MB或者2MB。 5. 使用`FormData`对象创建一个空的表单对象。 6. 遍历切片后的文件块,将每个块添加到表单对象中,并需要设置一个标识符来表示这个块在整个文件中的位置。 7. 在表单对象中添加其他的参数,例如文件名、文件类型等。 8. 使用Vue的HTTP库(例如axios)发送表单数据到后端服务器。 9. 后端服务器接收到文件切片后,将每个切片存储到相应位置。 10. 后端服务器接收到所有切片后,将切片合并为完整的文件。 11. 后端完成文件合并后,返回给前端上传成功的响应。 12. 前端接收到上传成功的响应后,进行相应的提示或者跳转。 需要注意的是,在文件切片上传过程中,还需要处理上传失败、上传中断等异常情况,并进行相应的处理和提示。 以上就是在Vue实现文件切片上传的基本流程,通过这种方式可以有效地提高大文件上传速度和稳定性。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值