Angular JS中的多个图像上传

时间:2014-03-29 06:07:35

标签: javascript node.js angularjs angularjs-directive angularjs-scope

我的表单将有两个文件输入字段和其他字段。用户将调整两种不同类型的文件并输入一些数据。在提交按钮上,我想将这两个文件和附带的数据一起发送到服务器。

我遇到过两个Angular File Uploader

  1. Angular-file-upload (nervgh)
  2. Angular File upload (danial farid)
  3. 两者都允许多个文件,但每个文件都有一个Http请求。但我想要的行为是1发送两个文件和一些JSON数据的Post请求。

    我的后端在NodeJS中。

1 个答案:

答案 0 :(得分:1)

你会想要这样的东西。

$http({
        method: 'POST',
        url: '/api/fogbugz/bug/create',
        data: { request: $scope.request, files: $scope.files },
        headers: { 'Content-Type': undefined },
        transformRequest: function(data) {
          var formData = new FormData();
          formData.append("request", angular.toJson(data.request));
          for (var i = 0; i < data.files.length; i++) {
            formData.append("File" + (i + 1), data.files[i]);
          }
          formData.append("nFileCount", data.files.length);
          return formData;
        }
      }).success(function(data) {

      }).error(function(error, response) {

      });

重要的是你必须在标题中将set Content-Type设置为undefined而不是multipart / form-data,因为undefined将为表单数据设置正确的边界。