Superagent多个文件附件

时间:2015-12-21 20:17:27

标签: javascript post superagent

我尝试通过superagent一次上传多个文件。 我知道docs说要使用多个.attach(),但我无法动态地使用它。

是否可以通过数组循环并重复.attach()?或者这是以另一种方式完成的?

这样的事情:

  export function uploadTemplateAction(templateFiles, placeholderStrings, questionnaire) {
  return dispatch => {
    dispatch(uploadTemplateRequestAction());

    if(templateFiles){

      Object.keys(templateFiles).forEach(function(key) {
        request.attach('templateFile', templateFiles[key])
      }.bind(this));

    }

    return request
      .post(uploadPOSTUrl)
      .set('Accept', 'application/json')
      .send({"placeholderStrings": placeholderStrings, "questionnaire": questionnaire})
      .end((err, res) => {
        if (err) {
          dispatch(uploadTemplateFailureAction(err, questionnaire));
        } else {
          dispatch(uploadTemplateSuccessAction(res.body, questionnaire));
        }
      });
  }
}

2 个答案:

答案 0 :(得分:3)

是的,这是可能的。你会这样做:

var req = request.post('/upload');
files.forEach((file)=> {
   req.attach(file.name, file);
});
req.end(callback);

取自react-dropzone文档:https://react-dropzone.js.org/

答案 1 :(得分:0)

如果您要填充一系列文件,可以这样做:

var req = request.post('/upload');
files.forEach((file)=> {
   req.attach('files', file);
});
req.end(callback);

在我的一个项目上测试过;)