2015-12-21 5 views
1

Im пытается загрузить сразу несколько файлов через 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)); 
     } 
     }); 
    } 
} 

ответ

3

Да, это возможно. Вы бы сделать это что-то вроде этого:

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

Взятые из реагирующих-Dropzone документы: http://okonet.ru/react-dropzone/