如何将请求从动作表单发送到angularjs

时间:2016-06-20 21:20:17

标签: javascript java angularjs rest

我使用此代码将文件上传到我的REST API,它工作正常, 这是我的表格:

<form action="webresources/documents/upload" 
      method="post" 
      enctype="multipart/form-data">

    <p>
        Select a file : 
        <input type="file" name="file" size="45" />
    </p>
    <input type="submit" value="Upload" />

</form>

这是我的REST API:

@POST
    @Path("/upload")
    @Consumes(MediaType.MULTIPART_FORM_DATA)
    public Response uploadFile(@MultipartForm Document document) {
.....
}

我的问题是:如何使用angularjs而不是使用发送相同的请求 在我的表单上 action =“webresources / documents / upload”

1 个答案:

答案 0 :(得分:0)

您不需要表单标记

这就是你的HTML的样子,

 <p>
        Select a file : 
        <input type="file" name="file" size="45" />
    </p>
<button ng-click="upload()">Upload</button>

您的控制器代码将是这样的,

$scope.upload = function () {
  var fd = new FormData();
  fd.append('file', file);

  $http({
    url: 'webresources/documents/upload',
    data: fd,
    method: "POST",
    headers: {
      "Content-Type": undefined
    }
  });
}

这会将您的文件上传到没有表单标记的服务器。