vue + qiniu(七牛) + axios 实现图片上传
来源:互联网 发布:泰安剑泉网络姬娜 编辑:程序博客网 时间:2024/06/09 16:05
- 上传头像功能,可以使用原生的ajax,现在有了axios封装好的ajax,通过formData的方式。
- 上传七牛的图片,前提是要先从后台获取的一个token的,上传图片时候作为参数传给七牛。
- 自己对应设置反向代理
七牛的官方文档
效果如下:
以下只粘贴出关键代码:
<header class="header"> <label class="avatar-bg"> <!--默认显示的一张图片--> <div class="avatar" v-if="!previewAvatar"></div> <!--七牛回调的图片path--> <img :src="previewAvatar" class="real-photo" v-if="previewAvatar"> <input ref="upload" id="upload" type="file" class="realfilebt" style="display: none;"/> </label> <!--mint-ui的progress的库--> <mt-progress v-if="!(progress==0||progress==100)" :value="progress" :bar-height="5" class="progress"></mt-progress></header>
<script>//引入axiosimport axios from 'axios';import Progress from 'mint-ui/lib/progress';import 'mint-ui/lib/Progress/style.css';//创建axios的实例const axiosInstance = axios.create({});export default { name: 'test', data() { return { files: [], // 文件 uploadToken: '', // 上传文件 token previewAvatar: '', // 页面展示的avatar progress: 0, // 进度条 }; }, //node版本要是8+,以上才能使用async await的方法 async mounted() { let self = this; //页面加载 拉去token let tokenRes = await axios({ url: '/api/sz/upToken', }); this.uploadToken = tokenRes.data.token; this.$refs.upload.addEventListener('change', function() { //console.log(this.files) var data = new FormData(); data.append('token', self.uploadToken); data.append('file', this.files[0]); axiosInstance({ method: 'POST', url: 'http://up.qiniu.com', data: data, onUploadProgress: function(progressEvent) { var percentCompleted = Math.round(progressEvent.loaded * 100 / progressEvent.total); //console.log(percentCompleted) //对应上传进度条 self.progress = percentCompleted; }, }) .then(function(res) { //console.log('res',res) let { base_url, path } = res.data; //页面所用字段 self.previewAvatar = `${base_url}${path}?imageView2/1/w/154/h/154`; //传给后台不完整 self.formData.avatar = `${path}`; }) .catch(function(err) { console.log('err', err); }); }); }, components: { [Progress.name]: Progress, //mint-ui引入组件的方法 },};</script>
阅读全文
1 0
- vue + qiniu(七牛) + axios 实现图片上传
- 七牛(qiniu)C/C++ SDK 实现上传
- vue axios 表单提交上传图片
- Angular-File-Upload-Qiniu上传图片至七牛
- laravel + qiniu 图片音频上传存储
- vue开发:vue+axios实现登录拦截
- 七牛图片上传
- 七牛选择华北简单上传抛出的异常 error:incorrect zone, please use up-z1.qiniu.com
- vue中实现图片丶文件上传
- vue+cropperjs实现图片剪裁,上传七牛云
- vue axios
- Vue axios
- laravel结合七牛实现base64的图片上传
- 使用七牛接口实现图片和文件一键上传
- 简单的springMVC+vue.js+axios实现
- vue+axios+springboot+redis 实现session 共享
- VUE axios 实现自定义下载功能
- 【vue+axios】前端实现登录拦截
- QT程序移植到开发板并运行 解决方案
- xcode编译错误:xcode codesign failed resource fork, Finder information, or similar detritus not allowed
- PHP 开发者该知道的 5 个 Composer 小技巧
- NPM 使用介绍
- the emacs windows initialization file "term/w32-winel" could not be found问题如何解决
- vue + qiniu(七牛) + axios 实现图片上传
- java compartTo 的用法
- layer 弹出层 示例
- 矩阵特征值的求解例子
- 搭建以太坊私有链多节点环境
- c语言实现socket服务端/客户端通过tcp传送文件
- java 权限
- thinkphp中的M和D方法详解
- 初识spring-boot