zoukankan      html  css  js  c++  java
  • uniapp 图片视频上传

    //点击事件
    //上传图片
    			getImg() {
    				
    				if (this.fileList.length >= 9) {
    					uni.showToast({
    						title: '上传数量上限',
    						icon: 'none',
    						duration: 1000
    					})
    					return
    				}
    			
    				let that = this;
    				uni.chooseImage({
    					count: 9,
    					sourceType: ['album', 'camera'],
    					success(res) {
    						let url = 'index.php?act=sns_invitation&op=uploadImage';
    						that.uploadImg(res.tempFilePaths[0], 'img', '图片', url)
    					}
    				})
    			},
    
    //公用方法
    uploadImg(tempFilePaths, type, text, url) {
    				let that = this;
    				 // console.log(tempFilePaths)
    				
    				let data = this.$utilImg.request(url);
    				var uper = uni.uploadFile({
    					// 需要上传的地址
    					url: 'http://xbbang.aitecc.com/mobile/' + url,
    					// filePath  需要上传的文件
    					filePath: tempFilePaths,
    					name: 'file',
    					type:"post",
    					formData: {
    						key: data.key,
    						api_sign: data.api_sign,
    						comefrom: data.comefrom,
    						api_time: data.api_time,
    						api_member_id: data.api_member_id,
    						api_member_name: data.api_member_name,
    					},
    					success(res1) {
    						that.imgStr = res1.data;
    					}
    				}) 
    				uni.showToast({
    					title: text + "上传中",
    					icon: "loading",
    					success: () => {
    						setTimeout(() => {
    							that.imgStr = JSON.parse(that.imgStr);
    							if (that.imgStr) {
    								if (that.imgStr.error_code == 0) {
    									console.log(that.imgStr)
    									if (type == 'img') {
    										that.showList.push({
    											img: that.imgStr.datas.filePath,
    											type: 'img'
    										})
    										that.fileList.push({
    											img: that.imgStr.datas.path,
    											type: 'img'
    										});
    									}else{
    										that.showList.push({
    											img: that.imgStr.datas.full_image_url,
    											type: 'video'
    										})
    										that.fileList.push({
    											img: that.imgStr.datas.image_url,
    											type: 'video'
    										});
    									}
    								} else {
    									uni.showToast({
    										title: that.imgStr.message,
    										icon: "none"
    									})
    								}
    								console.log(that.showList)
    							} else {
    								setTimeout(() => {
    									if (that.imgStr) {
    										if (that.imgStr.error_code == 0) {
    										
    											if (type == 'img') {
    												that.showList.push({
    													img: that.imgStr.datas.filePath,
    													type: 'img'
    												})
    												that.fileList.push({
    													img: that.imgStr.datas.path,
    													type: 'img'
    												});
    											} else {
    												that.showList.push({
    													img: that.imgStr.datas.full_image_url,
    													type: 'video'
    												})
    												that.fileList.push({
    													img: that.imgStr.datas.image_url,
    													type: 'video'
    												});
    												
    											}
    										} else {
    											uni.showToast({
    												title: that.imgStr.message,
    												icon: "none"
    											})
    										}
    									} else {
    										uni.showToast({
    											title: text + "上传失败",
    											icon: "none"
    										})
    									}
    								}, 2000)
    							}
    						}, 2000)
    					}
    				})
    			}

    //签名加密文件

    requImg.js
    /* 公共request 方法 */
    const server = 'http://mghzb.wbd99.com/';//正式域名api
    // const server = 'http://192.168.0.103:8001'
    const msdjs = require('./md5.js');
    function getQueryString(name,url,ture) {
    if(ture){
    var reg = new RegExp('(^|&)' + name + '=([^&]*)(&|$)', 'i');
    }else{
    var reg = new RegExp('(^|/?)' + name + '=([^&]*)(&|$)', 'i');
    }
    var r = url.substr(1).match(reg);
    if(r != null) {
    return unescape(r[2]);
    }
    return null;
    }

    const requestUrl = function(url){
    let data={};
    var header = {
    'content-type': 'application/x-www-form-urlencoded',
    }
    let timestamp = Date.parse(new Date());
    timestamp = timestamp / 1000;
    data.api_member_id = uni.getStorageSync('api_member_id') ? uni.getStorageSync('api_member_id') : "0";
    data.api_time = timestamp;
    data.api_member_name=uni.getStorageSync('api_member_name') ? uni.getStorageSync('api_member_name') : "0";
    let unionId = uni.getStorageSync("unionId")?uni.getStorageSync("unionId") : "";
    data.op=getQueryString("op",url,true) || index;
    data.act=getQueryString("act",url,false);
    data.comefrom="WAP"

    if(data.op!="goods_list"&&data.act!="goods"){
    data.key=uni.getStorageSync("key") || "0";
    }

    // 接口签名
    let api_signMd5=ksort(data);

    let forinstring="";
    console.log(data)

    for( let key in api_signMd5){
    if(key!="file" && key!="avator"){
    forinstring+="&"+key+"="+encodeURI(api_signMd5[key])
    }
    }
    api_signMd5= forinstring.replace("&","")+'AWAP78851ERFG85';
    api_signMd5=api_signMd5.replace(/,/g,"%2C")
    api_signMd5=api_signMd5.replace(/@/g,"%40")
    api_signMd5=api_signMd5.replace(///g,"%2F")
    api_signMd5=api_signMd5.replace(/:/g,"%3A")
    console.log(api_signMd5)

    data.api_sign = msdjs.hexMD5(api_signMd5);

    data.api_sign = msdjs.hexMD5(api_signMd5).toUpperCase()
    data.api_sign= data.api_sign.toLocaleLowerCase()

    return data;
    }


    // ({
    // url,
    // data,
    // }) => {

    // }

    /* 公共showTotast loading 方法 */
    module.exports = {
    request: requestUrl,
    };

    function ksort(o) {
    let sorted = {},
    keys = Object.keys(o);
    keys.sort();
    keys.forEach((key)=>{
    sorted[key] = o[key];
    })
    return sorted;
    }

    md5.js

    /*
    * A JavaScript implementation of the RSA Data Security, Inc. MD5 Message
    * Digest Algorithm, as defined in RFC 1321.
    * Version 1.1 Copyright (C) Paul Johnston 1999 - 2002.
    * Code also contributed by Greg Holt
    * See http://pajhome.org.uk/site/legal.html for details.
    */

    /*
    * Add integers, wrapping at 2^32. This uses 16-bit operations internally
    * to work around bugs in some JS interpreters.
    */
    function safe_add(x, y) {
    var lsw = (x & 0xFFFF) + (y & 0xFFFF)
    var msw = (x >> 16) + (y >> 16) + (lsw >> 16)
    return (msw << 16) | (lsw & 0xFFFF)
    }

    /*
    * Bitwise rotate a 32-bit number to the left.
    */
    function rol(num, cnt) {
    return (num << cnt) | (num >>> (32 - cnt))
    }

    /*
    * These functions implement the four basic operations the algorithm uses.
    */
    function cmn(q, a, b, x, s, t) {
    return safe_add(rol(safe_add(safe_add(a, q), safe_add(x, t)), s), b)
    }
    function ff(a, b, c, d, x, s, t) {
    return cmn((b & c) | ((~b) & d), a, b, x, s, t)
    }
    function gg(a, b, c, d, x, s, t) {
    return cmn((b & d) | (c & (~d)), a, b, x, s, t)
    }
    function hh(a, b, c, d, x, s, t) {
    return cmn(b ^ c ^ d, a, b, x, s, t)
    }
    function ii(a, b, c, d, x, s, t) {
    return cmn(c ^ (b | (~d)), a, b, x, s, t)
    }

    /*
    * Calculate the MD5 of an array of little-endian words, producing an array
    * of little-endian words.
    */
    function coreMD5(x) {
    var a = 1732584193
    var b = -271733879
    var c = -1732584194
    var d = 271733878

    for (var i = 0; i < x.length; i += 16) {
    var olda = a
    var oldb = b
    var oldc = c
    var oldd = d

    a = ff(a, b, c, d, x[i + 0], 7, -680876936)
    d = ff(d, a, b, c, x[i + 1], 12, -389564586)
    c = ff(c, d, a, b, x[i + 2], 17, 606105819)
    b = ff(b, c, d, a, x[i + 3], 22, -1044525330)
    a = ff(a, b, c, d, x[i + 4], 7, -176418897)
    d = ff(d, a, b, c, x[i + 5], 12, 1200080426)
    c = ff(c, d, a, b, x[i + 6], 17, -1473231341)
    b = ff(b, c, d, a, x[i + 7], 22, -45705983)
    a = ff(a, b, c, d, x[i + 8], 7, 1770035416)
    d = ff(d, a, b, c, x[i + 9], 12, -1958414417)
    c = ff(c, d, a, b, x[i + 10], 17, -42063)
    b = ff(b, c, d, a, x[i + 11], 22, -1990404162)
    a = ff(a, b, c, d, x[i + 12], 7, 1804603682)
    d = ff(d, a, b, c, x[i + 13], 12, -40341101)
    c = ff(c, d, a, b, x[i + 14], 17, -1502002290)
    b = ff(b, c, d, a, x[i + 15], 22, 1236535329)

    a = gg(a, b, c, d, x[i + 1], 5, -165796510)
    d = gg(d, a, b, c, x[i + 6], 9, -1069501632)
    c = gg(c, d, a, b, x[i + 11], 14, 643717713)
    b = gg(b, c, d, a, x[i + 0], 20, -373897302)
    a = gg(a, b, c, d, x[i + 5], 5, -701558691)
    d = gg(d, a, b, c, x[i + 10], 9, 38016083)
    c = gg(c, d, a, b, x[i + 15], 14, -660478335)
    b = gg(b, c, d, a, x[i + 4], 20, -405537848)
    a = gg(a, b, c, d, x[i + 9], 5, 568446438)
    d = gg(d, a, b, c, x[i + 14], 9, -1019803690)
    c = gg(c, d, a, b, x[i + 3], 14, -187363961)
    b = gg(b, c, d, a, x[i + 8], 20, 1163531501)
    a = gg(a, b, c, d, x[i + 13], 5, -1444681467)
    d = gg(d, a, b, c, x[i + 2], 9, -51403784)
    c = gg(c, d, a, b, x[i + 7], 14, 1735328473)
    b = gg(b, c, d, a, x[i + 12], 20, -1926607734)

    a = hh(a, b, c, d, x[i + 5], 4, -378558)
    d = hh(d, a, b, c, x[i + 8], 11, -2022574463)
    c = hh(c, d, a, b, x[i + 11], 16, 1839030562)
    b = hh(b, c, d, a, x[i + 14], 23, -35309556)
    a = hh(a, b, c, d, x[i + 1], 4, -1530992060)
    d = hh(d, a, b, c, x[i + 4], 11, 1272893353)
    c = hh(c, d, a, b, x[i + 7], 16, -155497632)
    b = hh(b, c, d, a, x[i + 10], 23, -1094730640)
    a = hh(a, b, c, d, x[i + 13], 4, 681279174)
    d = hh(d, a, b, c, x[i + 0], 11, -358537222)
    c = hh(c, d, a, b, x[i + 3], 16, -722521979)
    b = hh(b, c, d, a, x[i + 6], 23, 76029189)
    a = hh(a, b, c, d, x[i + 9], 4, -640364487)
    d = hh(d, a, b, c, x[i + 12], 11, -421815835)
    c = hh(c, d, a, b, x[i + 15], 16, 530742520)
    b = hh(b, c, d, a, x[i + 2], 23, -995338651)

    a = ii(a, b, c, d, x[i + 0], 6, -198630844)
    d = ii(d, a, b, c, x[i + 7], 10, 1126891415)
    c = ii(c, d, a, b, x[i + 14], 15, -1416354905)
    b = ii(b, c, d, a, x[i + 5], 21, -57434055)
    a = ii(a, b, c, d, x[i + 12], 6, 1700485571)
    d = ii(d, a, b, c, x[i + 3], 10, -1894986606)
    c = ii(c, d, a, b, x[i + 10], 15, -1051523)
    b = ii(b, c, d, a, x[i + 1], 21, -2054922799)
    a = ii(a, b, c, d, x[i + 8], 6, 1873313359)
    d = ii(d, a, b, c, x[i + 15], 10, -30611744)
    c = ii(c, d, a, b, x[i + 6], 15, -1560198380)
    b = ii(b, c, d, a, x[i + 13], 21, 1309151649)
    a = ii(a, b, c, d, x[i + 4], 6, -145523070)
    d = ii(d, a, b, c, x[i + 11], 10, -1120210379)
    c = ii(c, d, a, b, x[i + 2], 15, 718787259)
    b = ii(b, c, d, a, x[i + 9], 21, -343485551)

    a = safe_add(a, olda)
    b = safe_add(b, oldb)
    c = safe_add(c, oldc)
    d = safe_add(d, oldd)
    }
    return [a, b, c, d]
    }

    /*
    * Convert an array of little-endian words to a hex string.
    */
    function binl2hex(binarray) {
    var hex_tab = "0123456789abcdef"
    var str = ""
    for (var i = 0; i < binarray.length * 4; i++) {
    str += hex_tab.charAt((binarray[i >> 2] >> ((i % 4) * 8 + 4)) & 0xF) +
    hex_tab.charAt((binarray[i >> 2] >> ((i % 4) * 8)) & 0xF)
    }
    return str
    }

    /*
    * Convert an array of little-endian words to a base64 encoded string.
    */
    function binl2b64(binarray) {
    var tab = "ABCDEFGHIJKLMNOPQRSTUVuniYZabcdefghijklmnopqrstuvuniyz0123456789+/"
    var str = ""
    for (var i = 0; i < binarray.length * 32; i += 6) {
    str += tab.charAt(((binarray[i >> 5] << (i % 32)) & 0x3F) |
    ((binarray[i >> 5 + 1] >> (32 - i % 32)) & 0x3F))
    }
    return str
    }

    /*
    * Convert an 8-bit character string to a sequence of 16-word blocks, stored
    * as an array, and append appropriate padding for MD4/5 calculation.
    * If any of the characters are >255, the high byte is silently ignored.
    */
    function str2binl(str) {
    var nblk = ((str.length + 8) >> 6) + 1 // number of 16-word blocks
    var blks = new Array(nblk * 16)
    for (var i = 0; i < nblk * 16; i++) blks[i] = 0
    for (var i = 0; i < str.length; i++)
    blks[i >> 2] |= (str.charCodeAt(i) & 0xFF) << ((i % 4) * 8)
    blks[i >> 2] |= 0x80 << ((i % 4) * 8)
    blks[nblk * 16 - 2] = str.length * 8
    return blks
    }

    /*
    * Convert a wide-character string to a sequence of 16-word blocks, stored as
    * an array, and append appropriate padding for MD4/5 calculation.
    */
    function strw2binl(str) {
    var nblk = ((str.length + 4) >> 5) + 1 // number of 16-word blocks
    var blks = new Array(nblk * 16)
    for (var i = 0; i < nblk * 16; i++) blks[i] = 0
    for (var i = 0; i < str.length; i++)
    blks[i >> 1] |= str.charCodeAt(i) << ((i % 2) * 16)
    blks[i >> 1] |= 0x80 << ((i % 2) * 16)
    blks[nblk * 16 - 2] = str.length * 16
    return blks
    }

    /*
    * External interface
    */
    function hexMD5(str) { return binl2hex(coreMD5(str2binl(str))) }
    function hexMD5w(str) { return binl2hex(coreMD5(strw2binl(str))) }
    function b64MD5(str) { return binl2b64(coreMD5(str2binl(str))) }
    function b64MD5w(str) { return binl2b64(coreMD5(strw2binl(str))) }
    /* Backward compatibility */
    function calcMD5(str) { return binl2hex(coreMD5(str2binl(str))) }
    module.exports = {
    hexMD5: hexMD5
    }

    request.js

    /* 公共request 方法 */
    const server = 'http://mgh.wbd99.com'; //正式域名api
    // const server = 'http://192.168.0.103:8001'
    const msdjs = require('./md5.js');

    function getQueryString(name, url, ture) {
    if (ture) {
    var reg = new RegExp('(^|&)' + name + '=([^&]*)(&|$)', 'i');
    } else {
    var reg = new RegExp('(^|/?)' + name + '=([^&]*)(&|$)', 'i');
    }

    var r = url.substr(1).match(reg);
    if (r != null) {
    return unescape(r[2]);
    }
    return null;
    }

    function URLEncode(clearString) {
    var output = '';
    var x = 0;
    clearString = clearString.toString();
    var regex = /(^[a-zA-Z0-9-_.]*)/;
    while (x < clearString.length) {
    var match = regex.exec(clearString.substr(x));
    if (match != null && match.length > 1 && match[1] != '') {
    output += match[1];
    x += match[1].length;
    } else {
    if (clearString.substr(x, 1) == ' ') {
    output += '+';
    } else {
    var charCode = clearString.charCodeAt(x);
    var hexVal = charCode.toString(16);
    output += '%' + (hexVal.length < 2 ? '0' : '') + hexVal.toUpperCase();
    }
    x++;
    }
    }
    return output;
    }

    const requestUrl = ({
    that,
    url,
    data,
    success,
    asyn = false,
    isFirst = false,
    method = "GET"
    }) => {
    let tokenApi = [
    'api.member_order.create'
    ]
    if (tokenApi.includes(data.r) && !data.token) {
    uni.showToast({
    title: '请先登录',
    icon: 'none',
    duration: 1500
    })
    setTimeout(() => {
    uni.navigateTo({
    url: '/pageB/login/login'
    })
    }, 1500)
    return new Promise((resolve, reject) => {
    reject('login')
    })
    } else {
    let shopping_select = JSON.stringify(uni.getStorageSync("shopping_select"))
    var header = {
    'content-type': 'application/x-www-form-urlencoded',
    }
    //获取当前时间戳
    let timestamp = Date.parse(new Date());
    timestamp = timestamp / 1000;

    // data.api_member_id = uni.getStorageSync('api_member_id') ? uni.getStorageSync('api_member_id') : "0";
    data.api_time = timestamp;
    // data.api_member_name=uni.getStorageSync('api_member_name') ? uni.getStorageSync('api_member_name') : "0";
    let unionId = uni.getStorageSync("unionId") ? uni.getStorageSync("unionId") : "";
    if (uni.getStorageSync("key")) {
    data.token = uni.getStorageSync("key") ? uni.getStorageSync("key") : "";
    }
    if (data.goods_link) {
    data.goods_link = data.goods_link.replace(/=/, "%3D")
    data.goods_link = data.goods_link.replace(/?/g, "%3F")
    data.goods_link = data.goods_link.replace(/#/g, "%23")
    }
    // data.op=getQueryString("op",url,true) || 'index';
    // data.act=getQueryString("act",url,false);
    data.comefrom = "WAP"

    if (data.op != "goods_list" && data.act != "goods") {
    data.key = uni.getStorageSync("key") || "8518d44899bc1fe4a749cbc62fbaa2b2";
    }

    // 接口签名
    let api_signMd5 = ksort(data);

    let forinstring = "";

    for (let key in api_signMd5) {
    if (key != "file") {
    forinstring += "&" + key + "=" + encodeURI(api_signMd5[key])
    }
    }
    api_signMd5 = forinstring.replace("&", "") + 'MGHWAP2020';
    api_signMd5 = api_signMd5.replace(/,/g, "%2C")
    api_signMd5 = api_signMd5.replace(/@/g, "%40")
    api_signMd5 = api_signMd5.replace(///g, "%2F")
    api_signMd5 = api_signMd5.replace(/:/g, "%3A")
    api_signMd5 = api_signMd5.replace(/+/g, "%2B")
    api_signMd5 = api_signMd5.replace(/#/g, "%23")
    // console.log(api_signMd5)
    data.api_sign = msdjs.hexMD5(api_signMd5);

    data.api_sign = msdjs.hexMD5(api_signMd5).toUpperCase()
    data.api_sign = data.api_sign.toLocaleLowerCase()
    return new Promise(function(resolve, reject) {
    uni.request({
    url: server + url,
    method: method,
    data: data,
    async: asyn,
    header: header,
    success: (res) => {
    //token已失效,您已在其他客户端登录
    if (res.data.error_code == '505' || res.data.error_code == '501'||res.data.message == '查找不到该会员信息') {
    uni.navigateTo({
    url: '/pageB/login/login'
    })
    return false
    } else if (res.error_code == '1840002') {
    resolve(res.data)
    } else {
    if (isFirst) {
    resolve(res.data)
    } else {
    if (res.data.login == "0") {
    //提示去登陆页面
    // uni.showToast({
    // title: res.data.datas.error,
    // icon: 'none',
    // mask: true
    // });
    } else {
    resolve(res.data)
    }
    }
    }
    },
    fail: function(res) {
    console.log('请求错误', res)
    reject(res.data)
    },
    complete: function(res) {
    if (res.data.error_code == '401' || res.data.error_code == '505') {

    uni.navigateTo({
    url: '/pageB/login/login'
    })
    }

    }
    });
    })
    .catch((res) => {})
    }
    }

    /* 公共showTotast loading 方法 */
    module.exports = {
    request: requestUrl,
    };

    function ksort(o) {
    let sorted = {},
    keys = Object.keys(o);
    keys.sort();
    keys.forEach((key) => {
    sorted[key] = o[key];
    })
    return sorted;
    }

    liverequest.js

    /* 公共request 方法 */
    const server = 'http://mghzb.wbd99.com/mobile/'; //正式域名api
    // const server = 'http://192.168.0.103:8001'
    const msdjs = require('./md5.js');

    function getQueryString(name, url, ture) {
    if (ture) {
    var reg = new RegExp('(^|&)' + name + '=([^&]*)(&|$)', 'i');
    } else {
    var reg = new RegExp('(^|/?)' + name + '=([^&]*)(&|$)', 'i');
    }

    var r = url.substr(1).match(reg);
    if (r != null) {
    return unescape(r[2]);
    }
    return null;
    }

    function URLEncode(clearString) {
    var output = '';
    var x = 0;
    clearString = clearString.toString();
    var regex = /(^[a-zA-Z0-9-_.]*)/;
    while (x < clearString.length) {
    var match = regex.exec(clearString.substr(x));
    if (match != null && match.length > 1 && match[1] != '') {
    output += match[1];
    x += match[1].length;
    } else {
    if (clearString.substr(x, 1) == ' ') {
    output += '+';
    } else {
    var charCode = clearString.charCodeAt(x);
    var hexVal = charCode.toString(16);
    output += '%' + (hexVal.length < 2 ? '0' : '') + hexVal.toUpperCase();
    }
    x++;
    }
    }
    return output;
    }

    const requestUrl = ({
    that,
    url,
    data,
    success,
    asyn = false,
    isFirst = false,
    method = "GET"
    }) => {
    let tokenApi = [
    'api.member_order.create'
    ]
    if (tokenApi.includes(data.r) && !data.token) {
    uni.showToast({
    title: '请先登录',
    icon: 'none',
    duration: 1500
    })
    setTimeout(() => {
    uni.navigateTo({
    url: '/pageB/login/login'
    })
    }, 1500)
    return new Promise((resolve, reject) => {
    reject('login')
    })
    } else {
    let shopping_select = JSON.stringify(uni.getStorageSync("shopping_select"))
    var header = {
    'content-type': 'application/x-www-form-urlencoded',
    }
    //获取当前时间戳
    let timestamp = Date.parse(new Date());
    timestamp = timestamp / 1000;
    data.api_time = timestamp;
    // 不是nvne
    // #ifndef APP-NVUE
    let unionId = uni.getStorageSync("unionId") ? uni.getStorageSync("unionId") : "";
    console.log()
    if (uni.getStorageSync("key")) {

    data.token = uni.getStorageSync("key") ? uni.getStorageSync("key") : "950a233a43fb61f60d1a41831411df00";
    console.log(data.token,"h5")
    }
    if (data.op != "goods_list" && data.act != "goods") {
    data.key = uni.getStorageSync("key") || "";
    }
    // #endif
    // 是nvne
    // #ifdef APP-NVUE
    if (plus.storage.getItem('key')) {
    data.token = plus.storage.getItem('key')
    console.log(data.token,"app")
    }
    let unionId = plus.storage.getItem("unionId") ? plus.storage.getItem("unionId") : "";
    if (data.op != "goods_list" && data.act != "goods") {
    data.key = plus.storage.getItem("key") || "";
    }
    // console.log("key",plus.storage.getItem('001'))
    // console.log("key",plus.storage.setItem("001",'999'))
    // #endif

    if (data.goods_link) {
    data.goods_link = data.goods_link.replace(/=/, "%3D")
    data.goods_link = data.goods_link.replace(/?/g, "%3F")
    data.goods_link = data.goods_link.replace(/#/g, "%23")
    }
    // data.op=getQueryString("op",url,true) || 'index';
    // data.act=getQueryString("act",url,false);
    data.comefrom = "WAP"

    // 接口签名
    let api_signMd5 = ksort(data);

    let forinstring = "";

    for (let key in api_signMd5) {
    if (key != "file") {
    forinstring += "&" + key + "=" + encodeURI(api_signMd5[key])
    }
    }
    api_signMd5 = forinstring.replace("&", "") + 'MGHWAP2020';
    api_signMd5 = api_signMd5.replace(/,/g, "%2C")
    api_signMd5 = api_signMd5.replace(/@/g, "%40")
    api_signMd5 = api_signMd5.replace(///g, "%2F")
    api_signMd5 = api_signMd5.replace(/:/g, "%3A")
    api_signMd5 = api_signMd5.replace(/+/g, "%2B")
    api_signMd5 = api_signMd5.replace(/#/g, "%23")

    data.api_sign = msdjs.hexMD5(api_signMd5);

    data.api_sign = msdjs.hexMD5(api_signMd5).toUpperCase()
    data.api_sign = data.api_sign.toLocaleLowerCase()
    return new Promise(function(resolve, reject) {
    uni.request({
    url: server + url,
    method: method,
    data: data,
    async: asyn,
    header: header,
    success: (res) => {
    //token已失效,您已在其他客户端登录
    if (res.data.message == 'token为空'||res.data.message == 'token已过期,请重新登录'||res.data.error_code == '505' || res.data.error_code == '501') {

    uni.showToast({
    title: '请登录',
    icon: "none"

    })
    setTimeout(() => {
    uni.navigateTo({
    url: '/pageB/login/login'
    })
    }, 1000)
    return false
    } else if (res.error_code == '1840002') {
    resolve(res.data)
    } else {
    if (isFirst) {
    resolve(res.data)
    } else {
    if (res.data.login == "0") {
    //提示去登陆页面
    // uni.showToast({
    // title: res.data.datas.error,
    // icon: 'none',
    // mask: true
    // });
    } else {
    resolve(res.data)
    }
    }
    }
    },
    fail: function(res) {
    console.log('请求错误', res)
    reject(res.data)
    },
    complete: function(res) {
    if (res.data.error_code == '401' || res.data.error_code == '505') {

    uni.navigateTo({
    url: '/pageB/login/login'
    })
    }

    }
    });
    })
    .catch((res) => {})
    }
    }

    /* 公共showTotast loading 方法 */
    module.exports = {
    request: requestUrl,
    };

    function ksort(o) {
    let sorted = {},
    keys = Object.keys(o);
    keys.sort();
    keys.forEach((key) => {
    sorted[key] = o[key];
    })
    return sorted;
    }

      

  • 相关阅读:
    LeetCode 242. Valid Anagram (验证变位词)
    LeetCode 205. Isomorphic Strings (同构字符串)
    LeetCode 204. Count Primes (质数的个数)
    LeetCode 202. Happy Number (快乐数字)
    LeetCode 170. Two Sum III
    LeetCode 136. Single Number (落单的数)
    LeetCode 697. Degree of an Array (数组的度)
    LeetCode 695. Max Area of Island (岛的最大区域)
    Spark中的键值对操作
    各种排序算法总结
  • 原文地址:https://www.cnblogs.com/daifuchao/p/13368576.html
Copyright © 2011-2022 走看看