【问题标题】:Upload data and file with ng-file-upload使用 ng-file-upload 上传数据和文件
【发布时间】:2016-11-08 23:48:04
【问题描述】:

我是 Angular 的新手。我进行了很多搜索,但没有找到一种方法来获取通过 ng-file-upload 的 Upload.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 });
    })
  });

但我的 req.data 未定义。有什么不对。如何通过上传抓取发送数据?

【问题讨论】:

    标签: ng-file-upload


    【解决方案1】:

    如果您使用的是 Node.js,那么除了文件之外的所有表单数据都应该分配在 request 对象的 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
    

    【讨论】:

      【解决方案2】:

      您正在接收来自 ngf 的multipart/form-data

      我不知道您使用的是哪个服务器,但我认为您应该检查req.form 而不是req.data 或其他东西。

      或者,您可以使用一些外部中间件,例如this

      【讨论】:

        猜你喜欢
        • 2017-08-16
        • 2016-01-08
        • 2015-12-11
        • 2016-11-09
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多