Javascript Superagent多文件附件

Javascript Superagent多文件附件,javascript,post,superagent,Javascript,Post,Superagent,我试图通过一次上传几个文件。 我知道应该使用multiple.attach(),但我无法让它动态工作 是否可以通过数组循环并重复.attach()?还是用另一种方式 大概是这样的: export function uploadTemplateAction(templateFiles, placeholderStrings, questionnaire) { return dispatch => { dispatch(uploadTemplateRequestAction()

我试图通过一次上传几个文件。 我知道应该使用multiple.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));
        }
      });
  }
}
var req = request.post('/upload');
files.forEach((file)=> {
   req.attach(file.name, file);
});
req.end(callback);

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

  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));
        }
      });
  }
}
var req = request.post('/upload');
files.forEach((file)=> {
   req.attach(file.name, file);
});
req.end(callback);

摘自react dropzone文档:

如果您想填充一组文件,可以这样做:

  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));
        }
      });
  }
}
var req = request.post('/upload');
files.forEach((file)=> {
   req.attach(file.name, file);
});
req.end(callback);
var req=request.post('/upload');
files.forEach((文件)=>{
请求附加(“文件”,文件);
});
请求结束(回调);
在矿山的一个项目上测试;)