App七牛上传图片(uni-app)

206 阅读1分钟
  1. 首先,安装qiniu-js
npm i qiniu-js
  1. 引入qiniu-js
import * as qiniu from 'qiniu-js';
  1. 使用时调用
uni.chooseImage({
	sourceType: ['camera','album'],
	count: 3, 
	success(res) {
        if (Array.isArray(res.tempFiles)) {
            res.tempFiles.forEach(item=>{
                const file = item
                const key = item.name;
                const token = qiniuToken; //通过后端获取的七牛Token
                const putExtra = {
                        fname: '',
                        params: {},
                        mimeType: ['image/png', 'image/jpeg', 'image/gif','image/jpg'],
                };
                const config = {
                    useCdnDomain: true, //使用CDN加速
                }
                //只针对浏览器有效
                const observable = qiniu.upload(file, key, token, putExtra, config);
                observable.subscribe({
                    next: (result) => {
                      console.log(result,'kk')
                    },
                    error: (e) => {
                      console.log('上传图片失败');
                      console.log(e)
                    },
                    complete: (res) => {
                       fileList.push({
                          url:'https://images.common.think1st.cn/' + res.key
                       })	
                    },
                });
                //只针对浏览器有效
                //浏览器App均有效
                uni.uploadFile({
                    url: 'http://upload-z2.qiniup.com/',
                    filePath: res.tempFilePaths[0],
                    name: 'file',
                    formData: {
                        key: Math.round(new Date() / 1000),
                        token: qiniuToken //通过后端获取的七牛Token
                    },
                    success: result => {
                        let data = result['data']
                        fileList.push({
                            url:'https://images.common.think1st.cn/' + key
                        })
                    }
                 });
                 //浏览器App均有效
              })
            }
        }
    })