Maison  >  Article  >  développement back-end  >  微信公众平台模拟登陆上传素材(nodejs转php)

微信公众平台模拟登陆上传素材(nodejs转php)

WBOY
WBOYoriginal
2016-06-13 11:39:05855parcourir

微信公众平台模拟登陆上传素材(求助nodejs转php)

MPWechat.prototype.uploadMedia = function(medianame,reqData,callback){<br>    tools.log('uploadMedia start ...');<br>    var boundary = 'tvmin';<br>    var max = 9007199254740992;<br>    var dec = Math.random() * max;<br>    var hex = boundary + dec.toString(36);<br>    var mimes = {<br>        //image<br>        '.bmp': 'image/bmp',<br>        '.png': 'image/png',<br>        '.gif': 'image/gif',<br>        '.jpg': 'image/jpeg',<br>        '.jpeg': 'image/jpeg',<br>        /oice<br>        '.mp3': 'audio/mp3',<br>        '.wav': 'audio/x-wav',<br>        '.amr': 'audior',<br>        '.wma': 'audio/x-ms-wma',<br>        /ideo<br>        '.mp4': 'video/mp4',<br>        '.rm': 'video/rm',<br>        '.rmvb': 'videond.rn-realvideo',<br>        '.wmv': 'video/x-ms-wmv',<br>        '.avi': 'video/x-msvideo',<br>        '.mpg': 'video/mpeg',<br>        '.mpeg': 'video/mpeg'<br>    };<br>    var ext = path.extname(medianame).toLowerCase();<br>    var mime = mimes[ext];<br>    var boundaryKey = '----WebKitFormBoundary' + hex;<br>    var payload = '\r\n\r\n--' + boundaryKey + '\r\n'<br>        + 'Content-Disposition: form-data; name="uploadfile"; filename="'+ medianame +'"\r\n'<br>        + 'Content-Type: '+ mime +'\r\n\r\n';<br>    var enddata  = '\r\n--' + boundaryKey + '\r\n'<br>        + 'Content-Disposition: form-data; name="formId"\r\n\r\n'<br>        + '--' + boundaryKey + '--';<br>    var contentLength = Buffer.byteLength(payload,'utf8') + reqData.length  + Buffer.byteLength(enddata,'utf8');<br>    var options = {<br>        host: host,<br>        port: 443,<br>        method: 'POST',<br>        path: '/cgi-bin/uploadmaterial?cgi=uploadmaterial&type=0&token='+ this.token +'&t=iframe-uploadfile&lang=zh_CN&formId=null',<br>        headers: {<br>            'Content-Type': 'multipart/form-data; boundary='+boundaryKey,<br>            'Content-Length': contentLength,<br>            'User-Agent': 'Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.31 (KHTML, like Gecko) Chrome/26.0.1410.43 Safari/537.31',<br>            'Cookie': this.cookie,<br>            'Referer': 'https://'+ host +'/cgi-bin/indexpage?token='+ this.token +'&lang=zh_CN&t=wxm-upload&lang=zh_CN&type=0&fromId=file_from_1341151893625'<br>        }<br>    };<br>    var req = https.request(options, function(response) {<br>        var statusCode = response.statusCode;<br>//        console.log('STATUS: ' + statusCode,options);<br>        response.setEncoding('utf8');<br>        var data = '';<br>        response.on('data', function(chunk) {<br>            data += chunk;<br>        }).on('end',function(){<br>                callback(data.match(/formId, '(\d+)'/)[1]);<br>            });<br>    });<br>    req.write(payload,'utf8');<br>    req.write(reqData,'binary');<br>    req.write(enddata,'utf8');<br>    req.end();<br><br>    req.on('error', function(e) {<div class="clear">
                 
              
              
        
            </div>
Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn