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 location.replace与location.reload的区别
Sep 08 Javascript
Safari5中alert的无限循环BUG
Apr 07 Javascript
JS模拟面向对象全解(二、类型与赋值)
Jul 13 Javascript
js给dropdownlist添加选项的小例子
Mar 04 Javascript
为jquery的ajaxfileupload增加附加参数的方法
Mar 04 Javascript
js在数组中删除重复的元素自保留一个(两种实现思路)
Aug 22 Javascript
javascript动画算法实例分析
Jul 31 Javascript
angular.bind使用心得
Oct 26 Javascript
js判断所有表单项不为空则提交表单的实现方法
Sep 09 Javascript
Express + Node.js实现登录拦截器的实例代码
Jul 01 Javascript
Dropify.js图片宽高自适应的方法
Nov 27 Javascript
Angular服务Request异步请求的实例讲解
Aug 13 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 无极分类(递归)实现代码
2010/01/05 PHP
PHP批量检测并去除文件BOM头代码实例
2014/05/08 PHP
ioncube_loader_win_5.2.dll的错误解决方法
2015/01/04 PHP
基于CakePHP实现的简单博客系统实例
2015/06/28 PHP
为调试JavaScript添加输出窗口的代码
2010/02/07 Javascript
jquery动态增加删除表格行的小例子
2013/11/14 Javascript
jquery实现弹出div,始终显示在屏幕正中间的简单实例
2014/03/08 Javascript
node.js中的buffer.slice方法使用说明
2014/12/10 Javascript
JS+CSS实现带小三角指引的滑动门效果
2015/09/22 Javascript
详解JavaScript时间处理之几个月前或几个月后的指定日期
2016/12/21 Javascript
jQuery使用ajax方法解析返回的json数据功能示例
2017/01/10 Javascript
关于预加载InstantClick的问题解决方法
2017/09/12 Javascript
微信小程序倒计时功能实现代码
2017/11/09 Javascript
js自定义trim函数实现删除两端空格功能
2018/02/09 Javascript
vue ssr服务端渲染(小白解惑)
2019/11/10 Javascript
详解jQuery中的prop()使用方法
2020/01/05 jQuery
基于Angular 8和Bootstrap 4实现动态主题切换的示例代码
2020/02/11 Javascript
通过angular CDK实现页面元素拖放的步骤详解
2020/07/01 Javascript
Python最长公共子串算法实例
2015/03/07 Python
python去掉空白行的多种实现代码
2018/03/19 Python
python操作小程序云数据库实现简单的增删改查功能
2019/06/06 Python
Python图像处理PIL各模块详细介绍(推荐)
2019/07/17 Python
python实现批量处理将图片粘贴到另一张图片上并保存
2019/12/12 Python
tensorflow入门:TFRecordDataset变长数据的batch读取详解
2020/01/20 Python
Django 允许局域网中的机器访问你的主机操作
2020/05/13 Python
django 解决model中类写不到数据库中,数据库无此字段的问题
2020/05/20 Python
Python Http请求json解析库用法解析
2020/11/28 Python
基于HTML5+Webkit实现树叶飘落动画
2017/12/28 HTML / CSS
美国领先的户外服装与装备用品店:Moosejaw
2016/08/25 全球购物
美国成衣女装品牌:CHICO’S
2016/09/19 全球购物
美国知名的网上鞋类及相关服装零售商:Shoes.com
2017/05/06 全球购物
酒店拾金不昧表扬信
2014/01/18 职场文书
幼儿教师考核制度
2014/01/25 职场文书
2014最新房贷收入证明范本
2014/09/12 职场文书
惊涛骇浪观后感
2015/06/05 职场文书
Docker下安装Oracle19c
2022/04/13 Servers