vue中七牛插件使用的实例代码


Posted in Javascript onJuly 28, 2017

本文介绍了vue中七牛插件使用,我也正在学习,分享给大家,顺便留个笔记,废话不说了,如下:

<template>
  <div id="cxUpload" class="cx-upload">
   <button id="pickfiles" class="uploadBtn">上传</button> 
 </div>
</template>

<script>
  // import $ from 'jquery'
  // import "../../common/plugin/qiniu/moxie"
  // import "../../common/plugin/qiniu/plupload.dev"
  // import "../../common/plugin/qiniu/qiniu"
  import * as tools from '../../common/js/app.js'
  export default {
    props: {
      uptokenObj: Object
    },
    methods: {
      upLoadQiniu() { // 加载七牛
        let qiniuSetInter = setInterval(() => {
          if (this.uptokenObj.upToken) {
            this.initQiniu();
            // 清除定时器
            clearInterval(qiniuSetInter);
          }
        }, 1000)
      },
      initQiniu() { // 初始化七牛
        let self = this;
        let uploader = Qiniu.uploader({
          runtimes: 'html5,flash,html4', // 上传模式,依次退化
          browse_button: 'pickfiles', // 上传选择的点选按钮,**必需**
          // 其中 uptoken 是直接提供上传凭证,uptoken_url 是提供了获取上传凭证的地址,如果需要定制获取 uptoken 的过程则可以设置 uptoken_func
          uptoken: this.uptokenObj.upToken, // uptoken 是上传凭证,由其他程序生成
          get_new_uptoken: false, // 设置上传文件的时候是否每次都重新获取新的 uptoken
          // Ajax请求downToken的Url,私有空间时使用,JS-SDK 将向该地址POST文件的key和domain,服务端返回的JSON必须包含`url`字段,`url`值为该文件的下载地址
          unique_names: false, // 默认 false,key 为文件名。若开启该选项,JS-SDK 会为每个文件自动生成key(文件名)
          save_key: false, // 默认 false。若在服务端生成 uptoken 的上传策略中指定了 `save_key`,则开启,SDK在前端将不对key进行任何处理
          domain: this.uptokenObj.imgPath, // bucket 域名,下载资源时用到,如:'http://xxx.bkt.clouddn.com/' **必需**
          container: 'cxUpload', // 上传区域 DOM ID,默认是 browser_button 的父元素,
          max_file_size: '6mb', // 最大文件体积限制
          flash_swf_url: 'path/of/plupload/Moxie.swf', //引入 flash,相对路径
          max_retries: 1, // 上传失败最大重试次数
          dragdrop: false, // 开启可拖曳上传
          drop_element: 'cxUpload', // 拖曳上传区域元素的 ID,拖曳文件或文件夹后可触发上传
          chunk_size: '4mb', // 分块上传时,每块的体积
          filters: { //文件类型过滤,这里限制为图片类型
            mime_types: [{
                title: "Image files",
                extensions: "jpg,jpeg,gif,png"
              }]
              // prevent_duplicates : false //不允许选取重复文件 
          },
          auto_start: true, // 选择文件后自动上传,若关闭需要自己绑定事件触发上传,
          init: {
            'FilesAdded': function(up, files) {
              plupload.each(files, function(file) {
                // 文件添加进队列后,处理相关的事情

              });
            },
            'BeforeUpload': function(up, file) {
              // 每个文件上传前,处理相关的事情
            },
            'UploadProgress': function(up, file) {
              // 每个文件上传时,处理相关的事情
            },
            'FileUploaded': function(up, file, info) {
              // 每个文件上传成功后,处理相关的事情
              // console.log('info+++++++++++++++');
              // console.log(info);
              // 其中 info 是文件上传成功后,服务端返回的json,形式如
              // {
              //  "hash": "Fh8xVqod2MQ1mocfI4S4KpRL6D98",
              //  "key": "gogopher.jpg"
              // }
              var domain = up.getOption('domain');
              var res = eval('(' + info + ')');

              // 获取上传成功后的文件的Url
              // var sourceLink = domain + res.key;
              // var symbolLink = self.uptokenObj.imgPlaceholder + res.key;
              var linkObject = {
                "sourceLink": domain + res.key,
                "symbolLink": self.uptokenObj.imgPlaceholder + res.key
              }

              self.$emit('get-path', linkObject);
            },
            'Error': function(up, err, errTip) {
              //上传出错时,处理相关的事情
              // console.log('失败----------');
            },
            'UploadComplete': function() {
              //队列文件处理完毕后,处理相关的事情
            },
            'Key': function(up, file) {
              // 若想在前端对每个文件的key进行个性化处理,可以配置该函数
              // 该配置必须要在 unique_names: false , save_key: false 时才生效
              // 获取当前时间戳
              var timestamp = new Date().getTime();
              var key = "image/cxw/" + timestamp + ".png";
              // do something with key here
              return key
            }
          }

        });
      }
    },
    mounted() {
      this.upLoadQiniu();
    }
  }
</script>

<style lang="scss" scoped>
  .cx-upload {
    display: inline-block;
    .uploadBtn {
      width: 64px;
      height: 30px;
      color: #2f363c;
      outline: none;
      border: 2px solid #2f363c;
    }
  }
  
  @media screen and (max-width:648px) {
    .cx-upload {
      float: left;
    }
  }
</style>

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
基于jquery实现控制经纬度显示地图与卫星
May 20 Javascript
jquery实现table鼠标经过变色代码
Sep 25 Javascript
2种jQuery 实现刮刮卡效果
Feb 01 Javascript
javascript实现仿腾讯游戏选择
May 14 Javascript
浅谈js中的三种继承方式及其优缺点
Aug 10 Javascript
微信小程序 图片边框解决方法
Jan 16 Javascript
bootstrap IE8 兼容性处理
Mar 22 Javascript
20170918 前端开发周报之JS前端开发必看
Sep 18 Javascript
JavaScript读写二进制数据的方法详解
Sep 09 Javascript
vue-cli 首屏加载优化问题
Nov 06 Javascript
浅谈vue加载优化策略
Mar 19 Javascript
javascript实现蒙版与禁止页面滚动
Jan 11 Javascript
Vue.js中的图片引用路径的方式
Jul 28 #Javascript
将 vue 生成的 js 上传到七牛的实例
Jul 28 #Javascript
详解Vue2中组件间通信的解决全方案
Jul 28 #Javascript
详解React 16 中的异常处理
Jul 28 #Javascript
JavaScript截屏功能的实现代码
Jul 28 #Javascript
BootStrap selectpicker后台动态绑定数据的方法
Jul 28 #Javascript
详解angularjs的数组传参方式的简单实现
Jul 28 #Javascript
You might like
php URL跳转代码 减少外链
2011/06/25 PHP
PHP编译安装中遇到的两个错误和解决方法
2014/08/20 PHP
PHP常用技术文之文件操作和目录操作总结
2014/09/27 PHP
jQuery在vs2008及js文件中的无智能提示的解决方法
2010/12/30 Javascript
jquery获取自定义属性(attr和prop)实例介绍
2013/04/21 Javascript
原生js做的手风琴效果的导航菜单
2013/11/08 Javascript
JS中的THIS和WINDOW.EVENT.SRCELEMENT详解
2015/05/25 Javascript
jquery实现界面无刷新加载登陆注册
2016/07/30 Javascript
AngularJS过滤器详解及示例代码
2016/08/16 Javascript
jQuery实现大图轮播
2017/02/13 Javascript
Vue分页组件实例代码
2017/04/17 Javascript
详解使用Visual Studio Code对Node.js进行断点调试
2017/09/14 Javascript
详解JavaScript事件循环机制
2018/09/07 Javascript
如何通过setTimeout理解JS运行机制详解
2019/03/23 Javascript
JavaScript字符和ASCII实现互相转换
2020/06/03 Javascript
JS实现数据动态渲染的竖向步骤条
2020/06/24 Javascript
[32:47]完美世界DOTA2联赛 GXR vs IO 第二场 11.07
2020/11/09 DOTA
python使用pyhook监控键盘并实现切换歌曲的功能
2014/07/18 Python
仅用500行Python代码实现一个英文解析器的教程
2015/04/02 Python
win7上python2.7连接mysql数据库的方法
2017/01/14 Python
解决在pycharm中显示额外的 figure 窗口问题
2019/01/15 Python
Python代码太长换行的实现
2019/07/05 Python
Pytorch之卷积层的使用详解
2019/12/31 Python
python机器学习库xgboost的使用
2020/01/20 Python
Python 剪绳子的多种思路实现(动态规划和贪心)
2020/02/24 Python
css3中用animation的steps属性制作帧动画
2019/04/25 HTML / CSS
html5 音乐播放器 audio 标签使用概述
2013/07/15 HTML / CSS
Shopee菲律宾:在线购买和出售
2019/11/25 全球购物
别名指示符是什么
2012/10/08 面试题
语文教育专业推荐信范文
2013/11/25 职场文书
小学三八妇女节活动方案
2014/03/16 职场文书
节约用水倡议书
2014/04/16 职场文书
校优秀毕业生主要事迹
2014/05/26 职场文书
筑梦中国心得体会
2016/01/18 职场文书
新学期新寄语,献给新生们!
2019/11/15 职场文书
django上传文件的三种方式
2021/04/29 Python