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 相关文章推荐
firefox事件处理之自动查找event的函数(用于onclick=foo())
Aug 05 Javascript
js限制文本框只能输入数字(正则表达式)
Jul 15 Javascript
JavaScript 参数中的数组展开 [译]
Sep 21 Javascript
js操作cookie保存浏览记录的方法
Dec 25 Javascript
json数据处理及数据绑定
Jan 25 Javascript
JS中使用正则表达式g模式和非g模式的区别
Apr 01 Javascript
详解Node.js模板引擎Jade入门
Jan 19 Javascript
简述vue路由打开一个新的窗口的方法
Nov 29 Javascript
详解在vue-cli3.0中自定css、js和图片的打包路径
Aug 26 Javascript
微信小程序实现搜索功能
Mar 10 Javascript
js实现验证码功能
Jul 24 Javascript
在Vue中获取自定义属性方法:data-id的实例
Sep 09 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中的内存管理,PHP动态分配和释放内存
2013/06/28 PHP
解析csv数据导入mysql的方法
2013/07/01 PHP
[企业公众号]升级到[企业微信]之后发送消息失败的解决方法
2017/06/30 PHP
js实现在字符串中提取数字
2013/11/05 Javascript
js控制分页打印、打印分页示例
2014/02/08 Javascript
举例简介AngularJS的内部语言环境
2015/06/17 Javascript
js绘制圆形和矩形的方法
2015/08/05 Javascript
jQuery EasyUI基础教程之EasyUI常用组件(推荐)
2016/07/15 Javascript
javascript正则表达式中分组详解
2016/07/17 Javascript
利用JS实现点击按钮后图片自动切换的简单方法
2016/10/24 Javascript
详解Angularjs 如何自定义Img的ng-load 事件
2017/02/15 Javascript
JavaScript中利用构造器函数模拟类的方法
2017/02/16 Javascript
jQuery实现图片滑动效果
2017/03/08 Javascript
在 Node.js 中使用原生 ES 模块方法解析
2017/09/19 Javascript
js实现HTML中Select二级联动的实例
2018/01/05 Javascript
JavaScript设计模式之构造函数模式实例教程
2018/07/02 Javascript
微信小程序日历组件使用方法详解
2018/12/29 Javascript
微信小程序实现form表单本地储存数据
2019/06/27 Javascript
教你用python3根据关键词爬取百度百科的内容
2016/08/18 Python
深入理解python中函数传递参数是值传递还是引用传递
2017/11/07 Python
python实现数据预处理之填充缺失值的示例
2017/12/22 Python
pyQT5 实现窗体之间传值的示例
2019/06/20 Python
Windows下pycharm安装第三方库失败(通用解决方案)
2020/09/17 Python
使用python爬取抖音app视频的实例代码
2020/12/01 Python
专门出售各种儿童读物的网站:Put Me In The Story
2016/08/07 全球购物
英国时尚服饰电商:Boohoo
2017/10/12 全球购物
澳大利亚当地最大的时装生产商:Cue
2018/08/06 全球购物
外贸主管求职简历的自我评价
2013/10/23 职场文书
项目合作意向书范本
2014/04/01 职场文书
安全协议书
2014/04/23 职场文书
十佳中学生事迹材料
2014/06/02 职场文书
信仰心得体会
2014/09/05 职场文书
中考学习决心书
2015/02/04 职场文书
法制主题班会教案
2015/08/13 职场文书
pyqt5打包成exe可执行文件的方法
2021/05/14 Python
Mysql数据库索引面试题(程序员基础技能)
2021/05/31 MySQL