Java 使用HTML5文件API将文件上载到RESTful Web服务
我正在尝试将一个带有HTML5文件API的文件上传到Java RESTful Web服务。当我尝试上传gif图像时,服务接收到一个InputStream,我可以将该流写入服务器文件系统。不幸的是,出现了一些问题,因为创建的映像比源文件512字节大689字节。这就是我已经做到的: JavaScript:Java 使用HTML5文件API将文件上载到RESTful Web服务,java,javascript,rest,file-upload,jax-rs,Java,Javascript,Rest,File Upload,Jax Rs,我正在尝试将一个带有HTML5文件API的文件上传到Java RESTful Web服务。当我尝试上传gif图像时,服务接收到一个InputStream,我可以将该流写入服务器文件系统。不幸的是,出现了一些问题,因为创建的映像比源文件512字节大689字节。这就是我已经做到的: JavaScript: var doc = document.documentElement; doc.ondrop = function (event) { event.preventDefault &&a
var doc = document.documentElement;
doc.ondrop = function (event) {
event.preventDefault && event.preventDefault();
// now do something with:
var files = event.dataTransfer.files;
var formData = new FormData();
for (var i = 0; i < files.length; i++) {
formData.append('file', files[i]);
}
// now post a new XHR request
var xhr = new XMLHttpRequest();
xhr.open('POST', 'rs/media/upload', true);
xhr.onload = function () {
if (xhr.status === 200) {
console.log('all done: ' + xhr.status);
} else {
console.log('Something went terribly wrong...');
}
};
xhr.send(formData);
return false;
};
有人能告诉我这里怎么了吗?Web服务还处于初级阶段,所以请不要奇怪我使用的是绝对目标路径
谢谢,
Gerry我从泽西换成了RESTeasy,现在一切正常。以下是我的新REST方法:
@POST
@Path("upload")
@Consumes(MediaType.MULTIPART_FORM_DATA)
public Response uploadFile(@MultipartForm FileUploadForm form) throws IOException
{
if (form == null) {
return Response.status(Response.Status.PRECONDITION_FAILED).build();
}
Files.write(Paths.get(MEDIA_BASE_PATH + "/test.gif"), form.getData());
return Response.status(Response.Status.OK).build();
}
资料来源:
@POST
@Path("upload")
@Consumes(MediaType.MULTIPART_FORM_DATA)
public Response uploadFile(@MultipartForm FileUploadForm form) throws IOException
{
if (form == null) {
return Response.status(Response.Status.PRECONDITION_FAILED).build();
}
Files.write(Paths.get(MEDIA_BASE_PATH + "/test.gif"), form.getData());
return Response.status(Response.Status.OK).build();
}