vue+七牛云上传视频文件

Qiniu-JavaScript-SDK基于七牛云存储官方 API 构建,其中上传功能基于 H5 File API。开发者基于 JS-SDK 可以方便的从浏览器端上传文件至七牛云存储,并对上传成功后的文件进行丰富的数据处理操作。

我用的是qiniu-js的1.x版本,可以到文档里详细看看

安装引入

// 下载qiniu-jsnpm install qiniu-js@1.X -D// 在页面中引入import*asqiniufrom'qiniu-js'

功能简介

上传

html5 模式大于 4 M 时可分块上传,小于 4 M 时直传

Flash、html4 模式直接上传

继承了 Plupload 的功能,可筛选文件上传、拖曳上传等

服务端准备

JS-SDK依赖服务端颁发的上传凭证,后端服务应提供一个 URL 地址,供 SDK 初始化使用,前端通过 Ajax 请求该地址后获得 upToken。 Ajax 请求成功后,服务端应返回如下格式的 json:

{"uptoken":"0MLvWPnyya1WtPnXFy9KLyGHyFPNdZceomL..."}

上传步骤

1.生成上传选择的点选按钮

// 上传按钮的父元素// 上传按钮

2.前端通过接口请求获取token信息

3.创建Qiniu.uploader

this.uploader = Qiniu.uploader({    ...})// uploader为一个plupload对象,继承了所有plupload的方法

常用配置

上传选择的点选按钮,这是必须项

browse_button: 'pickfiles'

上传区域的设置

container: 'video_container' // 上传区域的DOM Id

存储空间的空间名 七牛云后台可查

bucket_name: 'bucket01'

空间域名 七牛云后台可查

domain: 'https://xxx.com'

上传凭证,JS-SDK 依赖服务端颁发 token,必填项

token: 'xxxxxxx'

分片上传时,每块的体积

七牛云分片上传文档:https://developer.qiniu.com/k...

chunk_size: '4mb'

文件类型的筛选

~~filters:{ // 这个属性实测只在电脑上有用  mime_types:[    { title:'Video files', extensions:'avi,mov,rmvb,rm,flv,mp4,3GP,asf,qt,mpeg,mpg,dat,ram,viv'},    { title:'Image files', extensions:'png'}]~~// 筛选文件类型可以放到BeforeUpload中处理//returnfalse 阻断文件上传init:{    BeforeUpload:function(up, file){_this.fileType =file.type.split('/')[0]if(_this.fileType !=='video') {          _this.$toast('请上传视频文件')returnfalse        }    }}

最大文件体积限制

max_file_size:'100mb',init: {    Error:function(up, err, errTip) {//上传出错时,处理相关的事情if(err.message ==='File size error.') {//当文件大小超过限制 走这里        }    }}

获取上传文件成功后通过FileUploaded拿到key,拼上域名就是文件的URL,想要获取文件的封面图、元信息等可以到七牛文档查阅,https://developer.qiniu.com/d... eg: domain + key + '?vframe/png/offset/7/w/480/h/360'

init: {    FileUploaded:function(up, file, info) {        console.log('FileUploaded')letresponse =JSON.parse(info.response)_this.hash = response.hash_this.resFileName = response.key_this.coverPic = 'https://xxx.com/' + response.key + '?vframe/png/offset/7/w/480'}}

获取上传文件的进度

init: {    UploadProgress:function(up, file) {// 每个文件上传时,处理相关的事情_this.filePercent = parseInt(file.percent)}}

遇到的坑

在项目工作过程中遇到了一个问题,iphone5的手机可以选择视频但上传七牛进度一直是1%,

这个问题原因应该是之前plupload一直没有彻底解决的iOS环境下兼容性的问题,经过多次尝试找到解决办法,添加下面这个属性就可以解决

multi_selection: false, // 限制只能上传单张图片

但是添加这个属性后选择视频会多走一层预览+压缩的步骤,这个步骤过于耗时,所以做了特殊处理,只有在iphone5时才将multi_selection置为false,这样虽然损失了一些便利性,但确保了上传视频功能的正常使用

多个上传实例

varoption1 = {  key :val,  ……};varuploader =Qiniu.uploader(option1);varQiniu2=newQiniuJsSDK();// QiniuJsSDK顾名思义七牛的JS-SDK对象varoption2 = {  key :val,  ……};varuploader2 =Qiniu2.uploader(option2);

完整代码

上传视频

共{{fileSize}}MB | 已上传{{fileLoaded}} | 上传速度{{fileSpeed}}/s
上传进度:{{filePercent}}%
暂停上传继续上传import{ apis, chttp }from'@/libs/interfaces'require('qiniu-js/dist/qiniu.min.js')

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 203,772评论 6 477
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,458评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 150,610评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,640评论 1 276
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,657评论 5 365
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,590评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,962评论 3 395
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,631评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,870评论 1 297
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,611评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,704评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,386评论 4 319
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,969评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,944评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,179评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 44,742评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,440评论 2 342

推荐阅读更多精彩内容