【问题标题】:How to send file data in post request in node using request module?如何使用请求模块在节点的发布请求中发送文件数据?
【发布时间】:2018-02-09 01:21:39
【问题描述】:

要求

我需要使用用户上传的文件进行 api 调用。我的服务器是节点,我使用 request 模块进行 api 调用。 以下是用户上传文件并提交时的代码。

if(queryData.sub == "upload"){
    var input = {};
    var formidable = require('formidable');
    var form = new formidable.IncomingForm();
    form.parse(request, function (err, fields, files) {
    var fs = require('fs');
    fs.readFile(files.filetoupload.path, function(err, data) {


    input.x_file_content = data;


    client.API.ATTACHMENTS.uploadFile(input).then(function(resp){

        var str = settings.layoutParsing(resp);
            response.write(str);
            response.end();
    })

    });

    });
}
}

在上传文件功能中,我使用 FormData 设置文件并在进行 api 调用时发送。下面是代码:

if (request.x_file_content) {

            var FormData = require('form-data');
            var formData = new FormData();
            formData.append('file', request.x_file_content);//No I18N
            req_body = formData;

        }

...

var httpclient = require('request');

httpclient({

        uri : baseUrl,
        method : request.type,
        headers : api_headers,
        responseType : responseType,
        body : req_body

    },function(error,response,body){

问题:

但文件未成功发送,api 服务器抛出 multipart content required 错误。

谁能指出我做错了什么。

谢谢

【问题讨论】:

    标签: node.js file-upload


    【解决方案1】:

    发现错误,

    设置标题并替换

     fs.readFile(files.filetoupload.path, function(err, data) {
    

    readStream = fs.createReadStream("path to file");

    修正代码:

    input.x_file_content = readStream;
    

    ..

    var FormData = require('form-data');
                form_Data = new FormData();        
                form_Data.append('file', request.x_file_content);//No I18N           
                req_body = form_Data;            
            api_headers = form_Data.getHeaders(); 
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2018-05-04
      • 2023-02-19
      • 1970-01-01
      • 2014-10-08
      • 2017-10-16
      • 1970-01-01
      • 2017-07-08
      相关资源
      最近更新 更多