【微信小程序分包上传大文件/视频】

您所在的位置:网站首页 文件上传程序怎么弄 【微信小程序分包上传大文件/视频】

【微信小程序分包上传大文件/视频】

2024-07-13 06:04:20| 来源: 网络整理| 查看: 265

这不前两天来了个奇葩需求,我写的小视频平台人家要上传2个G以上的视频,一开始咋想都想不通怎么写,后来一下就茅厕顿开了属于是,话不多说直接上码!

upload.js:

var bytesPerPiece = 5 * 1024 * 1024; // 每个文件切片大小定为5MB . var nowIndex = 0;//当前片index var identifier = `${Date.now()}${Math.random()}`;//文件唯一标识 var array = identifier.split('.');//处理唯一标识 identifier = array[0].toString() + array[1].toString(); const fs = wx.getFileSystemManager(); module.exports = Behavior({   data: {     bytesPerPiece: 20 * 1024 * 1024, // 每个文件切片大小定为1MB .     totalPieces: 0,   },   methods: {     onLoad: function (obj) {     },     async uploader(file, time, success_func) {       var arr = file.url.split('/');//拆解文件url       var fileName = arr[arr.length - 1];//获得文件名       var state = false;       var length = parseInt(file.size / bytesPerPiece);//总片数(取整)       if (bytesPerPiece * length == file.size) {         state = true       }       if (nowIndex  {             nowIndex++;             this.uploader(file, time, success_func);           },           fail: res => {             console.log(res);           }         })       }       if (nowIndex == length && !state) {//当index等于分片长度时上传剩余部分         var chunk = fs.readFileSync(file.url, '', nowIndex * bytesPerPiece, file.size - (nowIndex * bytesPerPiece));//按第几片加文件长度读取片文件;         console.log('upload7', chunk)         try {           fs.writeFileSync(//保存片文件             `${wx.env.USER_DATA_PATH}/${fileName}`,             chunk,             'utf8'           )         } catch (e) {           console.error(e)         }         var obj = { chunkSize: file.size - (nowIndex * bytesPerPiece), fileName: fileName, identifier: identifier, index: nowIndex, totalChunks: state ? length : length + 1, totalSize: file.size }         console.log(nowIndex, obj);         await wx.uploadFile({           url: this.data.host + '/apiToker/tkFile/base/burstUpload',           // url: args.url,           header: {             // method: 'GET',             Authorization: wx.getStorageSync('Authorization'),           },           filePath: `${wx.env.USER_DATA_PATH}/${fileName}`,           name: 'file',           // header: {},           formData: obj,           success: res => {             console.log(res);             this.request({               url: this.data.host + '/apiToker/tkFile/base/mergeShard',               data: { identifier: identifier, fileName: fileName },               method: 'POST'             }, res => {               this[success_func](res, time);             })           }         })       }     }   } })

你需要上传视频的页面需要引入vant的van-uploader组件

wxml:

          


【本文地址】

公司简介

联系我们

今日新闻


点击排行

实验室常用的仪器、试剂和
说到实验室常用到的东西,主要就分为仪器、试剂和耗
不用再找了,全球10大实验
01、赛默飞世尔科技(热电)Thermo Fisher Scientif
三代水柜的量产巅峰T-72坦
作者:寞寒最近,西边闹腾挺大,本来小寞以为忙完这
通风柜跟实验室通风系统有
说到通风柜跟实验室通风,不少人都纠结二者到底是不
集消毒杀菌、烘干收纳为一
厨房是家里细菌较多的地方,潮湿的环境、没有完全密
实验室设备之全钢实验台如
全钢实验台是实验室家具中较为重要的家具之一,很多

推荐新闻


图片新闻

实验室药品柜的特性有哪些
实验室药品柜是实验室家具的重要组成部分之一,主要
小学科学实验中有哪些教学
计算机 计算器 一般 打孔器 打气筒 仪器车 显微镜
实验室各种仪器原理动图讲
1.紫外分光光谱UV分析原理:吸收紫外光能量,引起分
高中化学常见仪器及实验装
1、可加热仪器:2、计量仪器:(1)仪器A的名称:量
微生物操作主要设备和器具
今天盘点一下微生物操作主要设备和器具,别嫌我啰嗦
浅谈通风柜使用基本常识
 众所周知,通风柜功能中最主要的就是排气功能。在

专题文章

    CopyRight 2018-2019 实验室设备网 版权所有 win10的实时保护怎么永久关闭