nodejs服务器中如何下载上传的文件

How to download the file uploaded in the nodejs server

我正在 node.js 服务器上载文件。下面是它的代码。

  var formData = new FormData();
  formData.append('part1', fs.createReadStream(file1));
  formData.append('part2', fs.createReadStream(file2));

  formData.submit({
    host: 'xyz',
    port: 4354,
    path: '/handler',
    method: 'POST',
    headers: {
      'Content-Type': 'multipart/mixed; boundary=' + formData.getBoundary()
    }
  }, function (error, response, body) {

    if (!error && response.statusCode === 200) {
     // Success case
    } else {
     // Failure case
    }

  });

现在,如何在 perl 服务器中下载该文件???

尝试了 HTTP::Response 的 decode_content() 方法。它正在记录如下响应。下面我没有找到任何更简单的下载文件的方法。

 ----------------------------401882132761579819223727^M
Content-Disposition: form-data; name="fileContent"; filename="filepath"^M
Content-Type: application/octet-stream^M
^M   
FileContent FileContent FileContent FileContentFileContentFileContent
FileContentFileContentFileContentFileContentFileContentFileContentFileContent
FileContentFileContentFileContentFileContentFileContentFileContentFileContent  
----------------------------401882132761579819223727--^M

使用 PerlMIME::Parser 解决了这个问题

 my $request = $r->as_string //$r is the HTTP::Request object
 $request =~ s/^[^\n]*\n//s;

 my $parser = MIME::Parser->new();
 $parser->output_to_core(1);

 my $ent = $parser->parse_data();  

 my $part1 = $ent->parts(0); // First file
 my $filename1 = $part1->head->recommended_filename
 my $content1 = $part1->bodyhandle->as_string

 my $part2 = $ent->parts(1); // Second file
 my $filename1 = $part2->head->recommended_filename
 my $content1 = $part2->bodyhandle->as_string

$part1 和 $part2 将是 MIME::Entity 对象类型,并根据我的要求使用合适的方法来读取它们的内容。