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);
}
}, )
},
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: , // 上传失败最大重试次数
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>
vue中七牛插件使用的更多相关文章
- vue中使用第三方插件animate.css实现动画效果
vue中使用第三方插件animate.css实现动画效果1.首先先引入第三方类animated.css2.将你所需要动画的标签用包裹起来3.在transition元素中添加enter-active-c ...
- Vue中的better-scroll插件
Vue中的better-scroll插件 在需要的文件中添加 import BScorll from 'better-scroll'; 引用的示例代码: let scroll = new BScrol ...
- 在vue中使用天气插件
在vue中使用天气插件 插件网址: 中国天气 选择自己需要的插件.生成代码复制即可 在 vue 中的使用: template 中 <div id="weather-v2-plugin ...
- vue中使用video插件vue-video-player
一.安装插件 npm install vue-video-player --save 二.配置插件 在main.js中全局配置插件 import VideoPlayer from 'vue-video ...
- vue中使用vue-pdf插件显示pdf
最近项目需求需要在vue中展示pdf,上网搜索了实现方法,找到vue-pdf这个插件非常好用,并且还有许多方法.属性能进行功能扩展. 一.安装 npm install --save vue-pdf 二 ...
- vue中如何开发插件
1.vue中提供了install方法用来开发插件 官方:Vue.js 的插件应该有一个公开方法 install.这个方法的第一个参数是 Vue 构造器,第二个参数是一个可选的选项对象. 2.我的插件目 ...
- react 或 vue 中引用 jQuery 插件
前言 今天与遇到一个令人抓狂的事情, 因为项目中有个交互太过于复杂而且冷门, 没有人封装类似react-swiper那种的移植过来的插件 只有现成的jQuery插件. 而时间并不宽裕,自己重写成rea ...
- vue中通过cross-env插件配置三种环境(开发,测试,生产)打包,不用切换api
1. 话不多说,第一步就是安装必要的插件 npm install cross-env --save 2.修改config里面的参数,这里只展示一个test,其他类似 3.修改package.json ...
- vue中引入swiper插件
这里我们使用npm的方式安装swiper插件. 1.npm install vue-awesome-swiper --save 2.在main.js文件中引入文件 import Vue from 'v ...
随机推荐
- 二叉搜索树BST(Binary Search Tree)
二叉搜索树(Binary Search Tree)也叫二叉排序树或二叉查找树.它满足以下性质: 1.非空左子树的所有键值小于其根结点的键值: 2.非空右子树的所有键值大于其根结点的键值: 3.左右子树 ...
- Windows下dump文件生成与分析
一. 生成Dump文件方式 1.1任务管理器 在程序崩溃后,先不关闭程序,在任务管理器中找到该程序对应的进程.右键—>创建转储文件. 此时会在默认的目录下创建出一个dump文件. 可以看出 ...
- MapReduce(四)
MapReduce(四) 1.shuffle过程 2.map中setup,map,cleanup的作用. 一.shuffle过程 https://blog.csdn.net/techchan/arti ...
- Vuejs实现轮播图
css: <style type="text/css"> * { margin: 0; padding: 0; list-style: none; } .clearfi ...
- 查验身份证 (15 分) 一个合法的身份证号码由17位地区、日期编号和顺序编号加1位校验码组成。校验码的计算规则如下: 首先对前17位数字加权求和,权重分配为:{7,9,10,5,8,4,2,1,6,3,7,9,10,5,8,4,2};然后将计算的和对11取模得到值Z;最后按照以下关系对应Z值与校验码M的值:
// test4.cpp : 此文件包含 "main" 函数.程序执行将在此处开始并结束.// #include "pch.h"#include <ios ...
- Linux下使用timedatectl命令时间时区操作详解
timedatectl命令对于RHEL / CentOS 7和基于Fedora 21+的分布式系统来说,是一个新工具,它作为systemd系统和服务管理器的一部分,代替旧的传统的用在基于Linux分布 ...
- ie edge 自动给数字加下划线
<meta name="format-detection" content="telephone=no,email=no,address=no">
- python 内置函数源码查看
如果是用python 实现的模块可以直接在IDE里面追踪到源码 也可以使用help内置函数,例如: help(os) 如果是c 语言实现的模块,则不能直接在IDE里面查看,如果直接在IDE里面查看,会 ...
- shell 整数条件判断
两个整数的比较 '整数1 -eq 整数2' 判断整数1是否和整数2相等(相等为真) '整数1 -ne 整数2' 判断整数1是否和整数2不相等(不相等位置) '整数1 -gt 整数2' 判断整数1是否大 ...
- Vue + Element UI 实现权限管理系统(动态加载菜单)
动态加载菜单 之前我们的导航树都是写死在页面里的,而实际应用中是需要从后台服务器获取菜单数据之后动态生成的. 我们在这里就用上一篇准备好的数据格式Mock出模拟数据,然后动态生成我们的导航菜单. 接口 ...