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 相关文章推荐
js 输出内容到新窗口具体实现代码
May 31 Javascript
js关于字符长度限制的问题示例探讨
Jan 24 Javascript
js 动态添加元素(div、li、img等)及设置属性的方法
Jul 19 Javascript
AngularJS Bootstrap详细介绍及实例代码
Jul 28 Javascript
JavaScript利用Date实现简单的倒计时实例
Jan 12 Javascript
Bootstrap table表格简单操作
Feb 07 Javascript
用javascript获取任意颜色的更亮或更暗颜色值示例代码
Jul 21 Javascript
写给vue新手们的vue渲染页面教程
Sep 01 Javascript
JS实现手写parseInt的方法示例
Sep 24 Javascript
vue router 源码概览案例分析
Oct 09 Javascript
echarts多条折线图动态分层的实现方法
May 24 Javascript
如何在Vue项目中添加接口监听遮罩
Jan 25 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中fwrite与file_put_contents性能测试代码
2013/08/02 PHP
PHP如何通过AJAX方式实现登录功能
2015/11/23 PHP
php中关于长度计算容易混淆的问题分析
2016/05/27 PHP
支付宝支付开发――当面付条码支付和扫码支付实例
2016/11/04 PHP
PHP实现唤起微信支付功能
2019/02/18 PHP
TP5框架实现上传多张图片的方法分析
2020/03/29 PHP
php提高脚本性能的4个技巧
2020/08/18 PHP
基于PHP实现用户在线状态检测
2020/11/10 PHP
基于jQuery的树控件实现代码(asp.net+json)
2010/07/11 Javascript
动态加载jQuery的方法
2015/06/16 Javascript
jQuery实现动画效果circle实例
2015/08/06 Javascript
javascript中利用柯里化函数实现bind方法【推荐】
2016/04/29 Javascript
jquery实现表格中点击相应行变色功能效果【实例代码】
2016/05/09 Javascript
Angular.js ng-file-upload结合springMVC的使用教程
2017/07/10 Javascript
vue.js开发实现全局调用的MessageBox组件实例代码
2017/11/22 Javascript
JS异步函数队列功能实例分析
2017/11/28 Javascript
详解各版本React路由的跳转的方法
2018/05/10 Javascript
Vue批量图片显示时遇到的路径被解析问题
2019/03/28 Javascript
ES6知识点整理之数组解构和字符串解构的应用示例
2019/04/17 Javascript
layui数据表格实现重载数据表格功能(搜索功能)
2019/07/27 Javascript
关于layui的动态图标不显示的解决方法
2019/09/04 Javascript
taro小程序添加骨架屏的实现代码
2019/11/15 Javascript
js回到页面指定位置的三种方式
2020/12/17 Javascript
使用python BeautifulSoup库抓取58手机维修信息
2013/11/21 Python
Python实现获取域名所用服务器的真实IP
2015/10/25 Python
Python语言实现将图片转化为html页面
2017/12/06 Python
Python使用Matplotlib实现雨点图动画效果的方法
2017/12/23 Python
python判断数字是否是超级素数幂
2018/09/27 Python
Python过滤txt文件内重复内容的方法
2018/10/21 Python
tensorflow2.0与tensorflow1.0的性能区别介绍
2020/02/07 Python
Python Request类源码实现方法及原理解析
2020/08/17 Python
吉列剃须刀英国官网:Gillette英国
2019/03/28 全球购物
优秀英文求职信范文
2015/03/19 职场文书
Keras在mnist上的CNN实践,并且自定义loss函数曲线图操作
2021/05/25 Python
Java新手教程之ArrayList的基本使用
2021/06/20 Java/Android
nginx中proxy_pass各种用法详解
2021/11/07 Servers