node.js multipart / form-data本地文件上传到api

时间:2016-10-19 12:11:02

标签: javascript node.js multipartform-data

我想从我的javascript应用程序上传文件到restful api服务。它应该使用像“c:/folder/test.png”这样的本地路径并上传到类似“localhost / uploads”的内容,是否有一个简单的approch,我有点迷失上传部分并尝试搜索,但没有发现任何与我的情况相符的内容,我已经尝试过以下代码:

    var request = require('request');

    var url = "http://localhost/uploads";
    var req = request.post(url, function (err, resp, body) {
          if (err) {
            console.log('Error!');
          } else {
            console.log('URL: ' + body);
          }
        });

    var form = req.form();

    form.append('file', fs.createReadStream("C:/kristian/Devbeasts-small.png"));

此代码给出了错误:错误:无法找到模块'request'

它需要多部分表单数据。

2 个答案:

答案 0 :(得分:1)

post方法可以将包含urlformData对象的对象作为第一个参数,如here所示。

var formData = {
  name: 'file1',
  file: {
    value:  fs.createReadStream('C:/kristian/Devbeasts-small.png'),
    options: {
      filename: 'Logo_flame.png',
      contentType: 'image/png'
    }
  }
};

request.post({url:'http://localhost/uploads', formData: formData}, 
  function cb(err, httpResponse, body) {
    if (err) {
      return console.error('upload failed:', err);
    }
    console.log('Upload successful!  Server responded with:', body);
  }
);

答案 1 :(得分:0)

您需要使用https://github.com/felixge/node-formidable 它可以快速上传文件