带有node.js和请求的简单Post formData会继续失败

时间:2016-07-20 18:41:09

标签: javascript node.js

我正在尝试使用node.js和请求模块将数据与文件一起发布到远程服务器,代码发送没有文件的数据。 我使用docs示例 https://github.com/request/request#forms

我可以使用php curl使用下面的代码发布相同的数据,所以我知道远程服务器代码可以工作。

我做错了什么?

$post = array(
    'sessionId' => 1234,
    'source' => 'text',
    'files[jpg]' => '@' . $file_name_with_full_path
);

$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $target_url);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $post);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);

$result = curl_exec($ch);
curl_close($ch);

我的node.js代码

var fs = require("fs");
var formData = {
    sessionId: 1234,
    source: 'text',
    files: JSON.stringify (
              {jpg:  fs.createReadStream( __dirname +"/"+ file.txt)}
      )
  request.post({url: 'https://url', formData: formData}, 
    function optionalCallback(err, httpResponse, body) {

    });

1 个答案:

答案 0 :(得分:0)

此代码已成功发布该文件。

  var r = request.post('https://url', function optionalCallback(err,httpResponse, body) { })
    var form = r.form();
    form.append('sessionId', 1234);
    form.append('source', 'text');
    form.append('file[jpg]', fs.createReadStream( __dirname +"/"+ file.txt);