我在内存中有一个文件(在缓冲区中),它不存在于文件系统中(所以我不能只是流)。
我正在尝试使用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 -上载中缺少文件内容
当我尝试追加escape(file_buffer.toString('binary')) (如如何在HTTP请求中发送缓冲区?中的建议)时,情况是一样的。
当我尝试追加file_buffer.toString('binary') node.js崩溃时,我会说:
节点:./src/stream_base.cc:157 int节点::StreamBase::Writev(const V 8::FunctionCallbackInfo&):断言‘(偏移) <= (storage_size)’失败。 中止(核心倾弃)
如何在Node.JS中通过HTTP (多部分/表单-数据)正确地发送文件(缓冲区)?
发布于 2017-05-11 11:30:24
您需要显式地为data字段设置一个data,否则缓冲区不会被上传为一个文件:
form.append('data', file_buffer, { filename : 'document.pdf' });这里记录了这一点(虽然不是很清楚):https://github.com/form-data/form-data#alternative-submission-methods (向下滚动到第四个示例)。
https://stackoverflow.com/questions/43913650
复制相似问题