微信公众平台模拟登陆上传素材(nodejs转php)
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了微信公众平台模拟登陆上传素材(nodejs转php),小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2038字,纯文字阅读大概需要3分钟。
内容图文
![微信公众平台模拟登陆上传素材(nodejs转php)](/upload/InfoBanner/zyjiaocheng/224/2b8b2885ced9455a97b4f2d0a5f661f6.jpg)
MPWechat.prototype.uploadMedia = function(medianame,reqData,callback){
tools.log('uploadMedia start ...');
var boundary = 'tvmin';
var max = 9007199254740992;
var dec = Math.random() * max;
var hex = boundary + dec.toString(36);
var mimes = {
//image
'.bmp': 'image/bmp',
'.png': 'image/png',
'.gif': 'image/gif',
'.jpg': 'image/jpeg',
'.jpeg': 'image/jpeg',
/oice
'.mp3': 'audio/mp3',
'.wav': 'audio/x-wav',
'.amr': 'audior',
'.wma': 'audio/x-ms-wma',
/ideo
'.mp4': 'video/mp4',
'.rm': 'video/rm',
'.rmvb': 'videond.rn-realvideo',
'.wmv': 'video/x-ms-wmv',
'.avi': 'video/x-msvideo',
'.mpg': 'video/mpeg',
'.mpeg': 'video/mpeg'
};
var ext = path.extname(medianame).toLowerCase();
var mime = mimes[ext];
var boundaryKey = '----WebKitFormBoundary' + hex;
var payload = '\r\n\r\n--' + boundaryKey + '\r\n'
+ 'Content-Disposition: form-data; name="uploadfile"; filename="'+ medianame +'"\r\n'
+ 'Content-Type: '+ mime +'\r\n\r\n';
var enddata = '\r\n--' + boundaryKey + '\r\n'
+ 'Content-Disposition: form-data; name="formId"\r\n\r\n'
+ '--' + boundaryKey + '--';
var contentLength = Buffer.byteLength(payload,'utf8') + reqData.length + Buffer.byteLength(enddata,'utf8');
var options = {
host: host,
port: 443,
method: 'POST',
path: '/cgi-bin/uploadmaterial?cgi=uploadmaterial&type=0&token='+ this.token +'&t=iframe-uploadfile&lang=zh_CN&formId=null',
headers: {
'Content-Type': 'multipart/form-data; boundary='+boundaryKey,
'Content-Length': contentLength,
'User-Agent': 'Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.31 (KHTML, like Gecko) Chrome/26.0.1410.43 Safari/537.31',
'Cookie': this.cookie,
'Referer': 'https://'+ host +'/cgi-bin/indexpage?token='+ this.token +'&lang=zh_CN&t=wxm-upload&lang=zh_CN&type=0&fromId=file_from_1341151893625'
}
};
var req = https.request(options, function(response) {
var statusCode = response.statusCode;
// console.log('STATUS: ' + statusCode,options);
response.setEncoding('utf8');
var data = '';
response.on('data', function(chunk) {
data += chunk;
}).on('end',function(){
callback(data.match(/formId, '(\d+)'/)[1]);
});
});
req.write(payload,'utf8');
req.write(reqData,'binary');
req.write(enddata,'utf8');
req.end();
req.on('error', function(e) {
内容总结
以上是互联网集市为您收集整理的微信公众平台模拟登陆上传素材(nodejs转php)全部内容,希望文章能够帮你解决微信公众平台模拟登陆上传素材(nodejs转php)所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。