uniapp 上傳圖片至阿里雲OSS

本文出自:https://www.cnblogs.com/2186009311CFF/p/14248337.html

//oss參數請求接口獲得
            uploadImage: function(imageSrc_local, OssPara, userId) {
                return new Promise((resolve, reject) => {
                    
                    //當前時間精確到毫秒字符串
                    var date = new Date(); //獲取時間
                    //console.log(date);
                    var year = date.getFullYear();
                    var month = date.getMonth() + 1;
                    var day = date.getDate();

                    var hour = date.getHours();
                    var minute = date.getMinutes();
                    var second = date.getSeconds();

                    month = isSubTen(month);
                    day = isSubTen(day);
                    //這樣寫顯示時間在1~9會擠佔空間;所以要在1~9的數字前補零;
                    if (hour < 10) {
                        hour = '0' + hour;
                    }
                    if (minute < 10) {
                        minute = '0' + minute;
                    }
                    if (second < 10) {
                        second = '0' + second;
                    }
                    //var x=date.getDay();//獲取星期    
                    var time = year + month + day + hour + minute + second;



                    //圖片命名規則:接口返回的地址 +接口返回的前綴 + 用戶id +'_'+當前時間精確到毫秒字符串 +'.png';

                    let nameStr = OssPara.dir + userId + '_' + date + '.png';
                    console.log('nameStr' + nameStr) uni.uploadFile({
                        url: OssPara.host, //輸入你的bucketname.endpoint  
                        filePath: imageSrc_local,
                        fileType: 'image',
                        name: 'file',
                        formData: {
                            name: nameStr,
                            key: nameStr,
                            policy: OssPara.policy, // 輸入你獲取的的policy 
                            OSSAccessKeyId: OssPara.accessKeyId, // 輸入你的AccessKeyId 
                            success_action_status: '200', // 讓服務端返回200,不然,默認會返回204 
                            signature: OssPara.signature, // 輸入你獲取的的signature  
                        },
                        success: res => {
                            //console.log(res) 
                            if (res.statusCode == '200') {
                                resolve(OssPara.host + '/' + nameStr);
                            } else {
                                console.log.log(res);
                                reject('接口返回錯誤');
                            }
                        },
                        fail() {
                            reject('網絡鏈接錯誤');
                        }
                    });
                });
            },

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章