WeChat パブリック プラットフォームはログインをシミュレートし、マテリアルをアップロードします (nodejs から php)。

WBOY
リリース: 2016-06-13 12:34:19
オリジナル
906 人が閲覧しました

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>
ログイン後にコピー
関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート