当前位置: 首页 > news >正文

手机网站制作优化微信app下载安装旧版本

手机网站制作优化,微信app下载安装旧版本,怀化市住房建设局网站,我想创个网站前端上传大文件、视频的时候会出现超时、过大、很慢等情况#xff0c;为了解决这一问题#xff0c;跟后端配合做了一个切片的功能。 我这个切片功能是基于 minion 的#xff0c;后端会把文件放在minion服务器上。具体看后端怎么做 1、在项目的 util(这个文件夹是自己创建的…前端上传大文件、视频的时候会出现超时、过大、很慢等情况为了解决这一问题跟后端配合做了一个切片的功能。 我这个切片功能是基于 minion 的后端会把文件放在minion服务器上。具体看后端怎么做 1、在项目的 util(这个文件夹是自己创建的如果项目里没有可以自行创建) 文件家中创建一个js文件 upload.js   在js文件中添加如下代码 import axios from axios; import md5 from js-md5 //引入MD5加密 export const uploadByPieces ({ urlList, file, pieceSize, progress, beforeSuccess, success, error }) {// 如果文件传入为空直接 return 返回if (!file) returnlet fileMD5 // 总文件列表const chunkSize pieceSize * 1024 * 1024 // 5MB一片const chunkCount Math.ceil(file.size / chunkSize - 1) // 总片数// 获取md5const readFileMD5 () {// 读取视频文件的md5// console.log(获取文件的MD5值)let fileRederInstance new FileReader()// console.log(file, file)fileRederInstance.readAsBinaryString(file)fileRederInstance.addEventListener(load, e {let fileBolb e.target.resultfileMD5 md5(fileBolb)// console.log(fileMD5, fileMD5)// console.log(文件未被上传将分片上传)readChunkMD5()})}const getChunkInfo (file, currentChunk, chunkSize) {let start currentChunk * chunkSizelet end Math.min(file.size, start chunkSize)let chunk file.slice(start, end)return { start, end, chunk }}// 针对每个文件进行chunk处理const readChunkMD5 () {// 针对单个文件进行chunk上传for (var i 0; i chunkCount; i) {const { chunk } getChunkInfo(file, i, chunkSize)// console.log(切片地址123 urlList)// console.log(总片数 chunkCount)// console.log(分片后的数据---测试 i)// console.log(chunk)let fileUrl urlList[i];// console.log(fileUrl,地址);uploadChunk({ chunk, currentChunk: i, chunkCount, fileUrl })}}const uploadChunk (chunkInfo) {// 上传请求方式1 (根据自身情况自行选择)// console.log(chunkInfo.chunk,chunkInfochunkInfo);let files chunkInfo.chunkaxios.put(chunkInfo.fileUrl,files).then((res) {// console.log(分片上传返回信息 res)if (res.status 200) {// 下面如果在项目中没有用到可以不用打开注释if (chunkInfo.currentChunk chunkInfo.chunkCount - 1) {beforeSuccess()} else {// 当总数大于等于分片个数的时候if ((chunkInfo.currentChunk 1) chunkInfo.chunkCount) {// console.log(文件开始------合并成功)success(res.data[0])}}}}).catch((e) {console.log(失败);error error(e)})}readFileMD5() // 开始执行代码 } js-md5 如果没有的话需要自己在项目里安装 npm install js-md5 2、创建一个上传视频文件的公共组件便于不同地方引用如下 templatediv classcontainer styledisplay:inline-block;width: 200px;el-uploadclassupload-demoaction#:multiplefalse:auto-uploadfalseaccept.mp4:on-changehandleChange:show-file-listfalseel-button slottrigger sizesmall typeprimary :disabledisUploadVideo选择视频/el-button!-- el-button sizesmall typeprimary clickuploadVideo() stylemargin-left: 10px;开始上传/el-button --/el-upload!-- 进度条 --el-progress v-ifprogressFlag :percentageloadProgress/el-progress/div /templatescript import {mapGetters} from vuex; import { uploadByPieces } from /util/upload-video import api from /api/mes2/index-lhj export default {data() {return {isUploadVideo: false,uploadId: , // 切片视频的唯一id(后端返回)fileNameVal: , // 文件名称(后端返回)listUrl: [], // 切片路径集合loadProgress: 0, // 动态显示进度条progressFlag: false, // 关闭进度条}},created(){},computed: { ...mapGetters([userInfo]), }, props:{paramsData: {type: Object,default: {}}},methods: {// 选择视频handleChange(file, fileList) {this.isUploadVideo true;this.progressFlag true; // 显示进度条this.loadProgress 10; // 动态获取文件上传进度let fileSizeVal file.size / 1024 / 1024;let numVal null;if(fileSizeVal 20){numVal 1;}else{numVal Math.ceil(file.size / (10 * 1024 * 1024));}let params {fileName: file.name,partCount: numVal - 1,tenantId: this.userInfo.tenant_id,fileType: mp4,fileSize: file.size,sourceId: this.paramsData.id,sourceType: this.paramsData.inspectionType,sourceSystem: MES2,hierarchyCode:MES2}api.queryUploadBigFileUrl(params).then((res) {this.loadProgress 20;this.listUrl res.data.data.partUrlList;this.uploadId res.data.data.uploadId;this.fileNameVal res.data.data.fileName// 调用切片方法uploadByPieces({urlList: this.listUrl,file: file.raw, // 视频实体pieceSize: 10, // 分片大小beforeSuccess: data {// 进度数 / 切片总数let progress Math.floor(70 / (numVal - 1)); // 计算进度this.loadProgress progress;},success: data {// console.log(分片上传视频成功, data)this.getFileAll(numVal)},error: e {console.log(分片上传视频失败, e)this.$message.error(视频切片上传失败请重新上传)this.progressFlag false}})}).catch(() {this.$message.error(发生错误请重新上传)this.progressFlag false})},// 整合切片文件getFileAll(numVal){let params {partCount: numVal - 1,tenantId: this.userInfo.tenant_id,uploadId: this.uploadId,fileName: this.fileNameVal,}this.loadProgress 95;api.queryUploadBigFile(params).then((res) {if(res.data.data false){this.isUploadVideo false;this.$message.error(视频切片合并失败请重新上传)setTimeout( () {this.progressFlag false}, 1000) // 一秒后关闭进度条}else{this.loadProgress 100;this.isUploadVideo false;this.$message.success(视频上传成功)this.$emit(uploadVideoData);if (this.loadProgress 100) {this.loadProgress 100setTimeout( () {this.progressFlag false}, 1000) // 一秒后关闭进度条}}}).catch(() {this.isUploadVideo false;this.$message.error(视频合并上传失败请重新上传)})},}, } /scriptstyle scoped langscss/style 具体根据自己的实际情况进行修改即可 至此完成 测试有效感谢支持
http://www.dnsts.com.cn/news/100448.html

相关文章:

  • 英文网站排名优化申请个网站
  • 库尔勒做网站如何在网站上添加备案号
  • 手机网站建站价格做网上推广
  • 网站工商标识做网站的公司负责杭州做网站一般多少钱
  • 中国公路建设协会网站建设网站用什么语言比较好
  • 网站建设最基础的是什么意思中国营销咨询公司排名
  • 百度包年推广网站建设请人做网站要多少
  • 深圳网站建设与推广wordpress 推荐返利
  • 济宁网站运营外包网络推广公司推广网站
  • 万网没备案怎么做网站重装的系统没有wordpress
  • 黄石做网站公司互联网广告业务
  • 制作网站中英文字体不能为wordpress 模版 cho s
  • 建设网站的费用预算微信怎么做网站的动图
  • html模板网站推荐在本地搭建wordpress
  • 网站模板及源码中国优秀设计网站有哪些内容
  • 域名 和网站有什么区别完整的网站开发
  • 网站的网站建设企业电子商务网站建设定位设想
  • 网站开发程序的移交淘宝客网站建设视频
  • 网站未备案陕西建设教育网站
  • 腾讯云wordpress建站无锡网站建设 君通科技
  • 深圳住房和建设局官网站天猫商城官网下载
  • 程序员做网站如何赚钱连江福州网站建设
  • 云南微网站制作网站推广服务具体内容包括哪些
  • 一级a做爰片免费网站短视频播放网站开发需求说明书
  • 苏州企业网站建设开发与制作我要登录百度
  • 湖北网站建设公司哪家好商务网页设计与制作软件
  • 单页面个人网站深圳西乡有什么好玩的
  • 亚马逊电商网站你有网站 我做房东 只收佣金的网
  • 查公司信息的网站是哪个网站怎么自己做淘宝网站吗
  • 如何查找网站备案广东网站建设系统怎么样