首页 > 解决方案 > 如何在响应的发布请求中将 zip 文件作为正文发送?

问题描述

假设我有一个用户上传的 zip 文件,如何将其传递给服务器进行处理?

我有前端功能来处理 zip 文件。我可以验证 fileUploaded 是否包含 zip 文件。

  const onImport = async evt => {
    const fileUploaded = evt.target.files[0];
    const response = await extractImport('/extractimport', fileUploaded);
  };

上面使用的辅助函数

export const extractImport = async (url, fileUploaded) => {
  return await fetch(url, {
    method: 'POST',
    headers: {'accept': 'application/zip'},
    body: fileUploaded
  });
};

后呼叫路由器。在这里,req 正文是空的。我不知道这里出了什么问题。

router.post('/extractimport',
  asyncWrapper(async (req, res) => {
    //req.body is empty here, I dont understand why.
    try {
      const result = await extractImportPost(req.body);
      res.status(200).json(result).end();
    } catch (err) {
      res.status(500).json({errors: [{error: err.message}]}).end();
    }
  })
);

上面使用的 extractImportPost 实用程序如下

const extractImportPost= async (zipFile) => {
  // zipFile is undefined here.
  // how do I pass the zip file to this place for process
}

感谢您的时间。

标签: javascriptreactjsreact-routerreact-router-domreact-router-v4

解决方案


推荐阅读