2015-12-21 68 views
1

我试图通过superagent一次上传多个文件。 我知道docs说使用多个.attach(),但我不能让它动态工作。Superagent多个文件附件

是否有可能循环槽阵列并重复.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)); 
     } 
     }); 
    } 
} 

回答

3

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

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

从反应,悬浮窗文档摘自:http://okonet.ru/react-dropzone/