2015-04-14 3 views
2

Моя форма проста. Он использует ng-flow для обработки загрузки файлов:busboy не получит загруженные файлы

<form class="form-horizontal" enctype="multipart/form-data"> 
    <div flow-init="{target: '/test', testChunks: false, query: {'_csrf': '{{csrf}}', 'somestring': 'teststring'} }" 
     flow-files-submitted="data.flow.upload()" 
     flow-name="data.flow"> 

     <input type="file" flow-btn/> 
    </div> 
</form> 

После того, как выбрано изображение, ng-flow будет делать POST к целевому маршруту. Похоже, что изображение было отправлено, так как запрос Payload имеет кучу вещей, как:

1048576 
------WebKitFormBoundaryw2YAG9m602ICPd0Q 
Content-Disposition: form-data; name="flowCurrentChunkSize" 

Изображение не очень большой (~ 1 Мб)

На стороне nodejs (с курьерским):

var busboy = require('connect-busboy')({ 
    limits: { 
     fileSize: 10 * 1024 * 1024 
    } 
}); 
router.post('/test', busboy, function(req, res) { 
    console.log('test called'); 
    console.log(req.busboy); 
    if (req.busboy) { 
     req.busboy.on('file', function(fieldname, file, filename, encoding, mimetype) { 
      console.log("this is fieldname: " + fieldname); 
     }); 
     req.busboy.on('field', function(fieldname, val, fieldnameTruncated, valTruncated) { 
      console.log('Field [' + fieldname + ']: value: ' + inspect(val)); 
     }); 
    } 

    res.json(); 
}); 

req.busboy возвращает объект полон вещей, но req.busboy.on('file'... и req.busboy.on('field'...) никогда не сработает.

Почему автобус не видит мои строки и изображения?

ответ

2

Вы должны трубы запрос помощника официанта, чтобы он мог разобрать форму:

req.pipe(req.busboy); 
Смежные вопросы