Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/447.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 使用HTML5文件API将文件上载到RESTful Web服务_Java_Javascript_Rest_File Upload_Jax Rs - Fatal编程技术网

Java 使用HTML5文件API将文件上载到RESTful Web服务

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

我正在尝试将一个带有HTML5文件API的文件上传到Java RESTful Web服务。当我尝试上传gif图像时,服务接收到一个InputStream,我可以将该流写入服务器文件系统。不幸的是,出现了一些问题,因为创建的映像比源文件512字节大689字节。这就是我已经做到的:

JavaScript:

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();
  }