3

我正在使用twit。更新状态(无媒体)工作正常,但使用媒体更新不起作用。
这是我的代码(与 express 一起使用):

//client side

<form id="tweeter" action='/image' method='POST' >
  <input type="text" name="tw" id="tw" />
  <input type='file' name='img' id='img' /> 
  <input type="submit" value="submit" /> 
</form>


 //server side

app.post('/image',function(req,res){
  var f= "./" +req.body.img;
  console.log(req.body.img);
  T.post('statuses/update_with_media', 
    { status: req.body.tw, media: f }, 
    function(err, reply) {
      console.log('ERROR:' +err);
      console.log('REPLY:' +reply);
    }
  );
});

我得到的错误是'Missing or invalid url parameter'
我应该如何通过发送图像文件media[]

4

1 回答 1

1

确保您的表单有一个enctype="multipart/form-data"and 而不是req.body.img尝试使用req.files.img

从 media 参数中查看 T.post 想要什么样的输入,你可以试试 base64

示例客户端代码:

<form id="tweeter" enctype="multipart/form-data" action='/image' method='POST' >
   <input type="text" name="tw" id="tw" />
   <input type='file' name='img' id='img' /> 
   <input type="submit" value="submit" /> 
</form>

示例服务器代码:

app.post('/image',function(req,res){
    var f = fs.readFileSync(req.files.img.path,'base64');
    T.post('statuses/update_with_media', {status: req.body.tw, media:f}, function(err, reply) {
        console.log('ERROR:'+err);
        console.log('REPLY:'+reply);
    });
});
于 2014-01-16T15:59:31.443 回答