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 相关文章推荐
老鱼 浅谈javascript面向对象编程
Mar 04 Javascript
jquery判断checkbox(复选框)是否被选中的代码
Oct 20 Javascript
JS+CSS3实现超炫的散列画廊特效
Jul 16 Javascript
bootstrap表单示例代码分享
May 18 Javascript
Vue CLI 3搭建vue+vuex最全分析(推荐)
Sep 27 Javascript
Vue项目报错:Uncaught SyntaxError: Unexpected token
Nov 10 Javascript
javascript的惯性运动实现代码实例
Sep 07 Javascript
nest.js 使用express需要提供多个静态目录的操作方法
Oct 24 Javascript
详解如何在JS代码中消灭for循环
Dec 11 Javascript
Node.js操作MongoDB数据库实例分析
Jan 19 Javascript
Vue快速实现通用表单验证的方法
Feb 24 Javascript
vue响应式原理与双向数据的深入解析
Jun 04 Vue.js
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递归复制、移动目录的自定义函数分享
2014/11/18 PHP
Ajax和PHP正则表达式验证表单及验证码
2016/09/24 PHP
php数组指针操作详解
2017/02/14 PHP
ThinkPHP 3.2.3实现加减乘除图片验证码
2018/12/05 PHP
Laravel 6 将新增为指定队列任务设置中间件的功能
2019/08/06 PHP
一些常用且实用的原生JavaScript函数
2010/09/08 Javascript
javascript 实现 秒杀,团购 倒计时展示的记录 分享
2013/07/12 Javascript
js修改input的type属性问题探讨
2013/10/12 Javascript
js获取电脑分辨率的思路及操作
2013/11/22 Javascript
JavaScript实现三阶幻方算法谜题解答
2014/12/29 Javascript
jquery实现鼠标悬浮停止轮播特效
2020/08/20 Javascript
JQuery 动态生成Table表格实例代码
2016/12/02 Javascript
利用Vue.js框架实现火车票查询系统(附源码)
2017/02/27 Javascript
jquery 手势密码插件
2017/03/17 Javascript
requirejs按需加载angularjs文件实例
2017/06/08 Javascript
jQuery实现table表格checkbox全选的方法分析
2018/07/04 jQuery
vue插件实现v-model功能
2018/09/10 Javascript
详解如何在vue项目中使用lodop打印插件
2018/09/27 Javascript
highcharts.js数据绑定方式代码实例
2019/11/13 Javascript
Vue ElementUI实现:限制输入框只能输入正整数的问题
2020/07/31 Javascript
[03:40]DOTA2抗疫特别篇《英雄年代》
2020/02/28 DOTA
Python使用urllib2获取网络资源实例讲解
2013/12/02 Python
Python Nose框架编写测试用例方法
2017/10/26 Python
python的unittest测试类代码实例
2017/12/07 Python
python定向爬虫校园论坛帖子信息
2018/07/23 Python
Python字典创建 遍历 添加等实用基础操作技巧
2018/09/13 Python
python实现人机猜拳小游戏
2020/02/03 Python
TensorBoard 计算图的查看方式
2020/02/15 Python
django 模型字段设置默认值代码
2020/07/15 Python
Window10上Tensorflow的安装(CPU和GPU版本)
2020/12/15 Python
初三化学教学反思
2014/01/23 职场文书
出纳员岗位职责
2014/03/13 职场文书
2014乡镇领导班子四风对照检查材料思想汇报
2014/10/05 职场文书
2014群众路线学习笔记
2014/11/06 职场文书
MySQL中存储时间的最佳实践指南
2021/07/01 MySQL
html原生table实现合并单元格以及合并表头的示例代码
2023/05/07 HTML / CSS