我使用此代码将文件上传到我的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”。
答案 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
}
});
}
这会将您的文件上传到没有表单标记的服务器。