我已经让这段代码运行良好,但是现在,稍后修改几次,当我回到它的上传功能时,它似乎只读取请求的元而不是实际文件。因此,例如,这是我在尝试上传txt文件时得到的结果:
------ WebKitFormBoundaryF5IARVFzqsY3zpj4Content-Disposition:form-data;名称= “文件” 未定义------ WebKitFormBoundaryF5IARVFzqsY3zpj4 -
JS:
$scope.setFiles = function(element) {
$scope.$apply(function($scope) {
console.log('files:', element.files[0]);
// Turn the FileList object into an Array
$scope.files = element.files[0];
$scope.progressVisible = false;
});
};
$scope.analyseFile = function() {
var fd = new FormData();
fd.append("file", $scope.files[0]);
var xhr = new XMLHttpRequest();
xhr.addEventListener("load", uploadComplete, false);
xhr.addEventListener("error", uploadFailed, false);
xhr.addEventListener("abort", uploadCanceled, false);
xhr.open("POST", "/rest/analysisController/analyseFile");
$scope.progressVisible = false;
xhr.send(fd);
};
和服务器端:
@POST
@Path("analyseFile")
@Produces("application/json; charset=UTF-8")
@Consumes(MediaType.MULTIPART_FORM_DATA)
public Response analyseFile(
@FormDataParam("file") InputStream uploadedInputStream) throws
RemoteException {
System.out.println(getStringFromInputStream(
uploadedInputStream));
return Response.ok().build();
}
我还包括多部分依赖:
<dependency>
<groupId>org.glassfish.jersey.media</groupId>
<artifactId>jersey-media-multipart</artifactId>
<version>2.5.1</version>
<scope>provided</scope>
</dependency>
答案 0 :(得分:1)
事实证明我的问题是切换到&#39; angular-file-upload.js&#39;的缩小版本。由于某种原因,缩小版本无法正常工作,因此它实际上并没有发送文件内容。
我不确定这个答案是否会真正帮助任何人,但以防万一。