如何将表单数据缓冲区发送到SignServer?
我有一个内存中的文件(在缓冲区中),它不存在于文件系统(所以我不能只是stream)。
我试图使用HTTP将它发送到SignServer 。
以下是我如何做到这一点:
var formdata = require('form-data'); var form = new formdata(); form.append('workerName', 'PDFSigner'); form.append('data', file_buffer); // or // escape(file_buffer.toString('binary')) // or // file_buffer.toString('binary') (without escaping) var request = form.submit('http://localhost:8080/signserver/process', function(err, res) {});
当我尝试追加file_buffer
SignServer说data
是空的:
状态400 – 上传中缺less文件内容
当我尝试追加escape(file_buffer.toString('binary'))
(正如我如何在HTTP请求中发送缓冲区中的build议? ),这是相同的故事。
当我尝试追加file_buffer.toString('binary')
node.js崩溃说:
node:../src/stream_base.cc:157 int node :: StreamBase :: Writev(const v8 :: FunctionCallbackInfo&):断言`(offset)<=(storage_size)'失败。
中止(核心倾弃)
如何通过Node.JS中的HTTP(multipart / form-data)正确发送文件(缓冲区)?
您明确需要为data
字段设置filename
,否则缓冲区不会上载为文件:
form.append('data', file_buffer, { filename : 'document.pdf' });
这是logging(尽pipe不是很清楚)在这里: https : //github.com/form-data/form-data#alternative-submission-methods (向下滚动到第四个例子)。