node.js - node 如何post 發送檔案 ?
phpcn_u1582
phpcn_u1582 2017-07-03 11:42:53
0
1
1355

想用node 呼叫一個API接口,接口參數要求上傳文件,如何用request module 實現這個操作呢?求大神。 。
現在的程式碼如下:
var config = require('./config');
var request = require('request');

var fs = require('fs');

var url = config.host '/inpidual/doc/ocr';

var file = fs.createReadStream('./WechatIMG5.jpeg');

var options = {

url: url,
method: 'POST',
"rejectUnauthorized": false,
form: {
    'agent_key': config.agent_key,
    'agent_no': config.agent_no,
    'doc_type': 'CHN_ID',
    'img': file,
    // 'has_oss_key': '1'
}

};

request(options, function (error, response, body) {

if (!error && response.statusCode == 200) {
    console.log(body);
    // console.log(error);
}

});

phpcn_u1582
phpcn_u1582

全部回覆(1)
代言

檔案需要使用 formData 而不是 form:

var options = {
    url: url,
    method: 'POST',
    formData: {
        'img': {
            value: fs.createReadStream('./WechatIMG5.jpeg')
        },
    }
};

請注意不同的傳輸方式header 中的content-type 是不同的,對於檔案是multipart/form-data ; 普通的鍵值對是application/x-www-form-urlencoded ; json 格式的資料是application/json 。

請仔細閱讀官方文檔,在 request 中, form 對應的是 application/x-www-form-urlencoded , formData 對應的是 multipart/form-data 。

熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板