【01】搭建好页面结构、定义数据与接口
<el-upload
method="post"
ref="upload"
:action="domain"
:data="QiniuData"
multiple
:on-exceed="handleExceed"
:on-remove="handleRemove"
:before-remove="beforeRemove"
:before-upload="beforeAvatarUpload"
:on-error="uploadError"
:on-success="uploadSuccess"
:limit="3"
:file-list="fileList"
:auto-upload="false">
<el-button slot="trigger" size="small" type="primary" style="margin-top: 15px;">选取图片</el-button>
<el-button style="margin-left: 10px;margin-top: 15px;" size="small" type="submit" @click="handleSubmit">上传图片</el-button>
<div slot="tip" class="el-upload__tip">只能上传jpg/png文件,且不超过500kb</div>
</el-upload>
data() {
return {
QiniuData: {
key: '',
token: ''
},
domain: 'http://upload.qiniu.com/',
info: {
AccessKey: 'AKKKKKKKKKKKKKKKK',
SecretKey: 'SKKKKKKKKKKKKKKKK',
Bucket: '七牛存储空间名'
},
uploadPicUrl: '',
fileList: []
}
},
// 上传图片张数限制
handleExceed(files, fileList) {
this.$message.warning(
`当前限制选择 3 张图片,如需更换,请删除上一张图片在重新选择!`
)
},
// 确认是否删除准备上传的图片
beforeRemove(file, fileList) {
return this.$confirm(`确定移除${file.name}?`)
},
// 处理删除事件
handleRemove(file, fileList) {
this.uploadPicUrl = ''
},
// 上传前检测图片格式是否符合提交要求
beforeAvatarUpload(file) {
console.log(file)
const isPNG = file.type === 'image/png'
const isJPEG = file.type === 'image/jpeg'
const isJPG = file.type === 'image/jpg'
const isLt2M = file.size / 1024 / 1024 < 2
if (!isPNG && !isJPEG && !isJPG) {
this.$message.error('上传头像图片只能是 jpg、png、jpeg 格式!')
return false
}
if (!isLt2M) {
this.$message.error('上传头像图片大小不能超过 2MB!')
return false
}
// 检测完成后,将文件名拼接上随机数前缀,保存到QiniuData.key中
var randPrefix = this.getNum()
this.QiniuData.key = randPrefix + '_' + `${file.name}`
},
// 上传成功后执行的回调函数,上传七牛云后可以在这里面得到key和hash
uploadSuccess(response, file, fileList) {
this.uploadPicUrl = '七牛云外链默认域名/' + `${response.key}`
console.log('上传成功!')
console.log('hash:' + response.hash)
console.log('资源链接:' + this.uploadPicUrl)
},
uploadError(response, file, fileList) {
this.$message({
message: '上传出错!',
type: 'error',
center: true
})
}
【02】从后端获取上传凭证token
mounted() {
this.getQiniuToken()
},
methods: {
getQiniuToken() {
this.$http.post('后端接口地址', this.info)
.then(response => {
// console.log(JSON.stringify(response))
if (response.data.Code === 200) {
console.log('获取token成功!')
this.QiniuData.token = response.data.Data.token
} else {
this.$message({
message: '获取token失败!' + response.data.Message,
type: 'error',
center: true
})
}
})
.catch(error => {
this.$message({
message: '获取token异常!' + error,
type: 'error',
center: true
})
})
}
【03】拼接随机数产生新的图片名称key
getNum() {
var chars = ['0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z', 'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z']
var nums = ''
for (var i = 0; i < 32; i++) {
var id = parseInt(Math.random() * 61)
nums += chars[id]
}
return nums
},
拼接上文件名
var randPrefix = this.getNum()
this.QiniuData.key = randPrefix + '_' + `${file.name}`
【04】提交数据到七牛云服务器
handleSubmit() {
console.log('开始上传……')
console.log(this.QiniuData)
this.$refs.upload.submit()
},
- ueditor上传图片到七牛云存储(form api,java)
转:http://my.oschina.net/duoduo3369/blog/174655 ueditor上传图片到七牛云存储 ueditor结合七牛传图片 七牛的试炼 开发前的准备与注意事项说明 ...
- 上传图片到七牛云(服务端 node.js sdk)
大体思路 前端要上传图片到七牛云,需要有一个token进行授权操作,而获取这个上传的upload token(以下简称upToken),在服务端需要一定的身份校验,比如说:只有登录的vip用户才能拿到 ...
- TP5上传图片到七牛云,并且删除七牛云的图片
一,通过composer 下载七牛云 sdk composer require qiniu/php-sdk 二,手动下载七牛云sdk 1,https://developer.qiniu.com/kod ...
- js上传图片到七牛云存储
项目开发过程中遇到一个需求,运营人员需要上传图片到七牛云,最开始的做法是,后台对接七牛,然后出一个接口,前端调用接口,先将图片传到后台,然后后台再上传七牛云,用的过程中发现,图片小的情况下还好,图片一 ...
- UEditor上传图片到七牛云储存(java)
我们的网站一般放在虚拟空间或者服务器上,图片如果存在本地目录,会占用很多空间和流量,还增加了负担,好的办法是把图片存放到云储存服务里面,平时用url去拿 云储存:普遍说又拍云和七牛比较好,看到七牛免费 ...
- 上传图片到七牛云(客户端 js sdk)
大体思路 上一篇我们讲了如何通过服务器生成一个upToken,那前端拿到这个token后又该如何操作?在这里我给出一个相当简洁的版本. 首先我们来看一下上传的思路:调用七牛模块的upload方法,生成 ...
- elementui上传图片到七牛云服务器
注册七牛云 首先,注册七牛云,并且完成实名认证,完成后会在个人中心->秘钥管理中看到两个秘钥AccessKey/SecretKey 创建存储空间(必须要实名认证) 生成上传凭证 为了实现上传,我 ...
- UEditor上传图片到七牛云储存(c#)
我们的网站一般放在虚拟空间或者服务器上,图片如果存在本地目录,会占用很多空间和流量,还增加了负担,好的办法是把图片存放到云储存服务里面,平时用url去拿 云储存:普遍说又拍云和七牛比较好,看到七牛免费 ...
- 在node中使用promise上传图片到七牛云
为了分摊个人服务器压力.提升图片下载上传的速度,使用七牛云保存用户上传的图片. 后台基于express搭建的,上传使用七牛云第三方nodejs-sdk.由于七牛云上传图片只能单个进行,并且考虑到上传完 ...
随机推荐
- .net core api +swagger(一个简单的入门demo 使用codefirst+mysql)
前言: 自从.net core问世之后,就一直想了解.但是由于比较懒惰只是断断续续了解一点.近段时间工作不是太忙碌,所以偷闲写下自己学习过程.慢慢了解.net core 等这些基础方面学会之后再用.n ...
- C#工具:WPF生成图片验证码
1.使用ImageFormatConvertHelper using System; using System.Collections.Generic; using System.Drawing; u ...
- OpenXMl倒出word、PDF
OpenXMl倒出word.PDF @using MarkdownSharp @{ ViewBag.Title = "预览"; Layout = "~/V ...
- UI第三方
自定义下拉刷新控件 - RefreshableView(支持所有控件的下拉刷新)https://blog.csdn.net/cjh_android/article/details/52462367 亲 ...
- <自动化测试方案_7>第七章、PC端UI自动化测试
第七章.PC端UI自动化测试 UI自动化测试又分为:Web自动化测试,App自动化测试.微信小程序.微信公众号UI层的自动化测试工具非常多,比较主流的是UFT(QTP),Robot Framework ...
- DVWA-XSS学习笔记
DVWA-XSS XSS概念:由于web应用程序对用户的输入过滤不严,通过html注入篡改网页,插入恶意脚本,从而在用户浏览网页时,控制用户浏览器的一种攻击. XSS类型: 反射型XSS:只是简单地把 ...
- CentOS 7 MySql 解压版安装配置
下载 访问www.mysql.com 点击DOWNLOADS-->Community-->MySQL Community Server 选择要下载的版本,目前可选择的有:5.5.5.6.5 ...
- mongo 监听指定语句
class Program { private static string conn = "mongodb://47.104.206.56:27017"; //数据库名称 priv ...
- 【vue】iView-admin2.0动态菜单路由
vue项目实现动态路由有俩种方式 一.前端在routers中写好--所有--路由表 <前端控制路由>,登录时根据用户的角色权限来动态的显示菜单路由 二.前端通过调用接口请求拿到当前用户-- ...
- ABP之Owin集成
如果在应用程序中同时使用ASP.NET MVC 和 ASP.NET Web API,你需要使用Nuget管理器将Abp.Owin添加到自己的项目中. 安装 使用下面的命令安装: Install-Pac ...