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+xml技术实现分页浏览
Jul 27 Javascript
重构Javascript代码示例(重构前后对比)
Jan 23 Javascript
《JavaScript DOM 编程艺术》读书笔记之DOM基础
Jan 09 Javascript
Javascript基础教程之变量
Jan 18 Javascript
如何用js 实现依赖注入的思想,后端框架思想搬到前端来
Aug 03 Javascript
jQuery事件绑定on()与弹窗实现代码
Apr 28 Javascript
JavaScript中的跨浏览器事件操作的基本方法整理
May 20 Javascript
浅析Javascript ES6中的原生Promise
Aug 25 Javascript
详解升级react-router 4 踩坑指南
Aug 14 Javascript
layui表单验证select下拉框实现验证的方法
Sep 05 Javascript
layer ui插件显示tips时,修改字体颜色的实现方法
Sep 11 Javascript
javascript对象3个属性特征
Nov 17 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 Array交叉表实现代码
2010/08/05 PHP
PHP 数据结构 算法 三元组 Triplet
2011/07/02 PHP
Zend Framework 2.0事件管理器(The EventManager)入门教程
2014/08/11 PHP
php微信支付之APP支付方法
2015/03/04 PHP
PHP实现长文章分页实例代码(附源码)
2016/02/03 PHP
php smtp实现发送邮件功能
2017/06/22 PHP
解决laravel groupBy 对查询结果进行分组出现的问题
2019/10/09 PHP
Date对象格式化函数代码
2010/07/17 Javascript
JavaScript Array Flatten 与递归使用介绍
2011/10/30 Javascript
javascript获得服务器端控件的ID的实现代码
2011/12/28 Javascript
jQuery性能优化的38个建议
2014/03/04 Javascript
简单介绍JavaScript的变量和数据类型
2015/06/03 Javascript
深入理解$.each和$(selector).each
2016/05/15 Javascript
老生常谈js中的MVC
2017/07/25 Javascript
jQuery实现的网站banner图片无缝轮播效果完整实例
2019/01/28 jQuery
ES6 let和const定义变量与常量的应用实例分析
2019/06/27 Javascript
element日历calendar组件上月、今天、下月、日历块点击事件及模板源码
2020/07/27 Javascript
Python语言描述KNN算法与Kd树
2017/12/13 Python
Python使用Matplotlib实现Logos设计代码
2017/12/25 Python
浅谈Pandas:Series和DataFrame间的算术元素
2018/12/22 Python
利用Python半自动化生成Nessus报告的方法
2019/03/19 Python
Python实现将HTML转成PDF的方法分析
2019/05/04 Python
用Python实现BP神经网络(附代码)
2019/07/10 Python
Python 一键获取百度网盘提取码的方法
2019/08/01 Python
Django 再谈一谈json序列化
2020/03/16 Python
python实现控制台输出彩色字体
2020/04/05 Python
Python scrapy爬取小说代码案例详解
2020/07/09 Python
python3.8动态人脸识别的实现示例
2020/09/21 Python
Jupyter安装链接aconda实现过程图解
2020/11/02 Python
俄罗斯首家面向中国消费者的一站式购物网站:Wruru
2020/05/08 全球购物
学校食堂采购员岗位职责
2013/12/05 职场文书
青年教师师德演讲稿
2014/08/26 职场文书
人事局接收函
2015/01/30 职场文书
鲁冰花观后感
2015/06/10 职场文书
十大最强火系宝可梦,喷火龙上榜,第一名有双火属性
2022/03/18 日漫
【海涛解说】暗牧也疯狂,牛蛙成配角
2022/04/01 DOTA