Загрузите данные и файл с помощью ng-file-upload

Я новичок в angular. Я много искал, но не нашел способа получить данные, отправленные через Upload.upload () из ng-file-upload. Хотя мой файл загружен в папку назначения с помощью muter

Вот моя управляемая функция, которая вызывается при нажатии на загрузку из представления.

$scope.doUpload = function() {
Upload.upload({
      url: '/api/upload/',
      data: {'sabhaDetails': sabhaDetails},
      file: sabhaFile,
      fileName: sabhaDetails.sabha_video_name
    });
}

На моем маршруте есть:

/ annotator page. (http://localhost:1337/api/upload)
annotationRouter.route('/upload')
  .post(function(req, res) {
    **console.log(req.data);**
    upload(req, res, function(err) {
      if(err) {
        res.json({ error_code:1, err_desc:err });
        return;
      }
      res.json({ error_code:0, err_desc:null });
    })
  });

Но я получаю undefined для моих req.data. Что-то не так. Как получить данные отправки через загрузку?


person Sanchit Aggarwal    schedule 14.10.2016    source источник


Ответы (2)


Если вы используете Node.js, все данные формы, кроме файлов, должны быть размещены под ключом body вашего объекта запроса.

В этом случае я думаю, что это должно быть req.body.data

Я сделал так, что отправлял все по ключу data:

Upload.upload({
      url: '/api/works/new',
      method: 'POST',
      data: {content: angular.toJson(controller.work), file: controller.thumb}
  }).

И тогда я могу читать так:

req.body.content

и файл как:

req.file.filename
person Cynthia Sanchez    schedule 08.11.2016

Вы получаете multipart/form-data от ngf.

Я не знаю, какой сервер вы используете, но я думаю, вам следует проверить req.form, а не req.data или что-то в этом роде.

Кроме того, вы можете использовать внешнее промежуточное ПО, например this

person SMSk    schedule 19.10.2016