WeChat パブリック プラットフォームはログインをシミュレートし、マテリアルをアップロードします (nodejs が php に変換するのに役立ちます)
MPWechat.prototype.uploadMedia = function(medianame,reqData,callback){<br> tools.log('uploadMedia start ...');<br> varboundary = 'tvmin';<br> var max = 9007199254740992;<br> var dec = Math.random() * max;<br> var hex = 境界 dec.toString(36);<br> var mimes = {<br> //画像<br> '.bmp': 'image/bmp',<br> ‘.png’: ‘画像/png’,<br> ‘.gif’: ‘画像/gif’,<br> ‘.jpg’: ‘画像/jpeg’,<br> ‘.jpeg’: ‘画像/jpeg’,<br> /oice<br> ‘.mp3’: ‘オーディオ/mp3’,<br> '.wav': 'audio/x-wav',<br> ‘.amr’: ‘オーディオ’,<br> '.wma': 'audio/x-ms-wma',<br> /ideo<br> ‘.mp4’: ‘ビデオ/mp4’,<br> ‘.rm’: ‘ビデオ/rm’,<br> ‘.rmvb’: ‘videond.rn-realvideo’,<br> '.wmv': 'video/x-ms-wmv',<br> '.avi': 'video/x-msvideo',<br> ‘.mpg’: ‘ビデオ/mpeg’,<br> ‘.mpeg’: ‘ビデオ/mpeg’<br> };<br> var ext = path.extname(メディア名).toLowerCase();<br> var mime = mimes[ext];<br> varboundaryKey = '----WebKitFormBoundary' hex;<br> var payload = 'rnrn--' 境界キー 'rn'<br> 'Content-Disposition: form-data name="uploadfile"; filename="' medianame '"rn'<br> 'Content-Type: ' mime 'rnrn';<br> var enddata = 'rn--' 境界キー 'rn'<br> 'Content-Disposition: form-data; name="formId"rnrn'<br> '--' boundaryKey var contentLength = Buffer.byteLength(payload,'utf8') reqData.length Buffer.byteLength(enddata,'utf8');<br> var オプション = {<br> ホスト: ホスト、<br> ポート: 443、<br> メソッド: 'POST'、<br> パス: '/cgi-bin/uploadmaterial?cgi=uploadmaterial&type=0&token=' this.token '&t=iframe-uploadfile&lang=zh_CN&formId=null',<br> ヘッダー: {<br> 'Content-Type': 'multipart/form-data;boundaryKey,<br> 'コンテンツの長さ': contentLength,<br> 'ユーザーエージェント': 'Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.31 (KHTML、Gecko など) Chrome/26.0.1410.43 Safari/537.31',<br> 'Cookie': this.cookie,<br> 'リファラー': 'https://' ホスト '/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> データ = チャンク;<br> }).on('end',function(){<br> callback(data.match(/formId, '(d )'/)[1]);<br> });<br> });<br> req.write(ペイロード,'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>