栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > Web开发 > Vue.js

基于vue axios上传图片到七牛云

Vue.js 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

基于vue axios上传图片到七牛云

1、优点
  • 移动端 和 pc 端通用

  • 可以自己添加上传进度条

  • 解释了一些七牛的知识点

缺点:一次不能上传多张图片,不能预览,不能裁剪图片。

2、代码
//jsimport axios from 'axios';

methods: {    //触发input change事件
    uploadInputchange(){        let file = document.getElementById("uploadFileInput").files[0];   //选择的图片文件
        this.uploadImgToQiniu(file);
    },    //上传图片到七牛
    uploadImgToQiniu(file){        const axiosInstance = axios.create({withCredentials: false});    //withCredentials 禁止携带cookie,带cookie在七牛上有可能出现跨域问题
        let data = new FormData();
        data.append('token', this.params.token);     //七牛需要的token,叫后台给,是七牛账号密码等组成的hash
        data.append('file', file);
        axiosInstance({            method: 'POST',            url: 'http://upload.qiniup.com/',  //上传地址
            data: data,            timeout:30000,      //超时时间,因为图片上传有可能需要很久
            onUploadProgress: (progressEvent)=> {                //imgLoadPercent 是上传进度,可以用来添加进度条
                let imgLoadPercent = Math.round(progressEvent.loaded * 100 / progressEvent.total);
            },
        }).then(data =>{            document.getElementById("uploadFileInput").value = ''        //上传成功,把input的value设置为空,不然 无法两次选择同一张图片
            //上传成功...  (登录七牛账号,找到七牛给你的 URL地址) 和 data里面的key 拼接成图片下载地址
        }).catch(function(err) {            //上传失败
        });
    }
},
3、遇到的问题3.1、微信等X5内核浏览器不能选择图片(点击图片选择没有效果),

需要改变input accept 的值,很奇怪

3.2、input不能连续两次 选择同一张图片

因为我们是用input的change事件 触发 成功选择图片,change事件触发是需要 input 的value值 改变,但是连续两次选择同一张图片,value值并没有改变,所以就不会触发input的 change事件。



作者:xilong
链接:https://www.jianshu.com/p/6d21a54fbfbd


转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/240732.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号