uniapp对接oss,实现图片上传

最近的项目中需要用到对接oss,网上的文档太少,插件商城里面也是不清不楚的,特别是下载了以后还在安卓里面用不了,不过又是一段时间的折腾之后,问题解决了,所以就可以在这里水一篇教程了。其实原理来说还是蛮简单的,就是需要用到插件商城里的插件,然后还要对其中的一段js进行注释才可以解决全部问题。

1.jpg

教程开始:

1.去阿里云创建一个存储桶,然后在RAM访问控制中添加人员,并赋予oss管理权限。

2.png
在上图可以看到访问控制 RAM,点击进入后创建一个用户
3.png
完成上述步骤之后,就可以生成用户 AccessKey,这就是关系到app内能否进行图片上传的关键。
4.png
将生成的AccessKey保存好,然后就是后面的步骤了

2.给项目安装阿里云oss文件直传-无需后台签名这个插件,引入到项目需要用到文件上传的页面中。

import uploadImage from '../../js_sdk/yushijie-ossutil/ossutil/uploadFile.js';

引入之后,配置oss的config.js文件,设置刚才获取的信息

5.png

注意,此插件还需要进行一个修改,就是crypto.js的106行左右,注释下面这行代码,否则安卓端插件会不可用。

if (typeof btoa == "function") return btoa(util.bytesToString(bytes));

3.开始使用插件进行图片上传

uploadOss(){
    uni.chooseImage({
        count: 1, // 默认最多一次选择9张图
        //sourceType: ['camera'], // 可以指定来源是相册还是相机,默认二者都有
        success: res=> {
            // 返回选定照片的本地文件路径列表,tempFilePath可以作为img标签的src属性显示图片
            var tempFilePaths = res.tempFilePaths;
    
            //支持多图上传
            for (var i = 0; i < res.tempFilePaths.length; i++) {
                //显示消息提示框
                uni.showLoading({
                  mask: true
                })
                uploadImage(res.tempFilePaths[i], 'images/', 
                result => { 
                    console.log(JSON.stringify(result));
                    uni.hideLoading(); 
                    //成功之后,可以将result带去执行其它方法或者赋值
                    
                },result =>{ 
                    //这里写上传失败的代码 
                    console.log(JSON.stringify(result));
                })
            }
        }
    })
},

以上是选择并上传图片的主要方法,如果成功,那么result 就会返回图片的地址。

效果如下(这是最近的聊天app项目):
Lark20200916-095025.jpeg

教程到此结束

您的大名:
万水千山总是情,给个打赏行不行。 打赏
原创文章,作者:不暇,如若转载,请注明出处:https://www.ruletree.club/archives/2114/
uniapp连接webSocket实例,收发数据存储到本地,详细教程
« 上一篇 09-10
高隐私聊天软件项目源码,安卓,ios,浏览器三端兼容,JAVA后端框架
下一篇 » 09-17

发表评论

作者信息

热门文章

标签TAG

热评文章