当前位置: 首页 > 知识库问答 >
问题:

如何发送一个文件作为多部分/表单数据从node.js当它从客户端上传作为多部分/表单数据?

叶文博
2023-03-14

我有一个NodeJs/React应用程序。用例是上传一个文件,让第三方API扫描它,然后如果成功保存相同的文件。在扫描完成之前,我们无法保存文件。

我们正在使用fetch方法从react以多部分formdata的形式上载该文件。一旦在节点中接收到文件。js访问文件并检查文件大小和类型,我们使用multer如下。

  router.post("/upload", upload.any("fieldname"), (req, res) => {
    scanFiles(req.files[0])
      .then((data) => {
        global.logger.info("scanned successfully.....");
        res.status(200);
      })
      .catch((err) => {
        global.logger.info("scan api ended with errors", err);
        res.status(400).send({ error: err.message })
      });
  });

现在scanapi希望我们也将文件作为多部分表单数据发送。在此场景中,如何使用req中接收的字段。要附加到formData的文件[0]。我尝试了下面的方法,但失败了

const formData = new FormData();
try {
  formData.append("file", file, "sample_pdf");
} catch (err) {
  global.logger.error("Form data ended with errors", err);
}

我得到一个错误,而试图做同样的事情。似乎formD的第二个参数ata.append期望一个文件流,而是从req.files[0]获取文件对象。在这种情况下,我们需要将文件数据转换为文件流吗?

共有1个答案

令狐灿
2023-03-14

formData。将expect文件追加为Blob我不了解req的类型。文件[0]

但是如果这个文件有方法. arrayBuffer(),你可以试试

file.arrayBuffer().then((array) => {
    formData.append('file', new Blob([array]), 'simple_pdf.pdf');
});
 类似资料:
  • 问题内容: 我是angular.js的初学者,但是对基础知识有很好的了解。 我要做的是上传文件和一些表单数据作为多部分表单数据。我读到这不是angular的功能,但是3rd party库可以做到这一点。我已经通过git克隆了angular-file-upload,但是仍然无法发布简单的表单和文件。 有人可以提供如何执行此操作的示例,html和js吗? 问题答案: 首先 您无需对结构进行任何特殊更改

  • 我正在尝试在 Java 应用程序中设置一个 Apache Camel 路由,其中使用者终结点是一个 restlet 组件,它将 HTTP 文件上传作为多部分表单数据的 POST 进行处理,然后创建者终结点将请求转发到也接受多部分表单数据的 rest 服务。我是骆驼的新手,不知道如何正确地连接它。以下是到目前为止我的路线。我是否需要对正文进行任何转换,还是会按原样转发多部分表单数据?有人可以为我提供

  • 有人知道如何在中使用吗。Net 4.5与上传? 我在网上找不到任何例子。

  • 问题内容: 我正在尝试通过带有POST请求的照片上传 根据自述文件,我应该能够做到这一点 问题是,这不起作用。我收到测试服务器的回复,说它转储了0个post变量。 我已经确认该HTML小页面服务器处于工作状态 所以问题是,请求模块在做什么?有没有更好的方法来发送节点? 问题答案: 经过更多研究后,我决定使用。这使得分段上传非常容易。

  • 以下API使用postman工作: Spring boot,后端代码: ReactJS,前端代码:我在中有对象数组。 触发功能的按钮: 我需要将我的前端(ReactJS)代码更改为,就像我使用postman发布请求一样。当前JS代码导致以下错误响应: Servlet。路径为[]的上下文中的servlet[dispatcherServlet]的service()引发了异常[请求处理失败;嵌套异常为o

  • http://letitripple.org/htmlform.html 这是此html表单创建的请求。(我从chrome开发者工具中获得) ------WebKitFormBoundaryPug6XAUALAUPBR86内容-配置:表单-数据;name=“wp-user-avatars”;filename=“desert.jpg”内容-类型:image/jpeg