Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/395.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 通过RestyGWT使用FileUpload从GWT客户端传输文件_Java_File Upload_Gwt - Fatal编程技术网

Java 通过RestyGWT使用FileUpload从GWT客户端传输文件

Java 通过RestyGWT使用FileUpload从GWT客户端传输文件,java,file-upload,gwt,Java,File Upload,Gwt,我有一个gwt客户端,现在我正在尝试将用户的文件(图像)传输到服务器并保存它们。你能解释一下如何通过RestyGWT使用FileUpload从GWT传输文件吗。我发现有必要使用FormPanel,我认为我必须使用setAction()和submit()方法,但我使用的是RestyGWT,我不明白如何通过RestyGWT传输数据 客户端: private FormPanel fileUploadPanel; private FileUpload fileUpload; private void c

我有一个gwt客户端,现在我正在尝试将用户的文件(图像)传输到服务器并保存它们。你能解释一下如何通过RestyGWT使用FileUpload从GWT传输文件吗。我发现有必要使用FormPanel,我认为我必须使用setAction()和submit()方法,但我使用的是RestyGWT,我不明白如何通过RestyGWT传输数据

客户端:

private FormPanel fileUploadPanel;
private FileUpload fileUpload;
private void create() {
//Some code //
    fileUpload = new FileUpload();
    fileUploadPanel = new FormPanel();
    fileUploadPanel.setMethod(FormPanel.METHOD_POST);
    fileUploadPanel.setEncoding(FormPanel.ENCODING_MULTIPART);
    fileUpload.setName("upload");
    fileUploadPanel.setAction("http://localhost:8080/api/events/upload");
    fileUploadPanel.add(fileUpload);
//Some code//
}


 @POST
 @Path("UPLOAD_PATH")
 void uploadImage(/*i don't know how what must be here */,
             MethodCallback callback);
服务器端:

 @Path("/upload")
 @POST
 @Consumes(MediaType.MULTIPART_FORM_DATA)
 public void uploadImage(
        @FormDataParam("upload") InputStream uploadedInputStream,
        @FormDataParam("upload") FormDataContentDisposition fileDetail) {

    String uploadedFileLocation = "some_path" + fileDetail.getFileName();

    writeToFile(uploadedInputStream, uploadedFileLocation);

}
客户

这将向服务器发布标准的多部分重新查询。在这里,您只需读取部分(在本例中,您将有一个“id”部分和一个“abcupload”部分,这将是文件)

我不能发布任何Java服务器端代码,因为我总是在服务器端使用C#,但这应该只是在多部分post请求中读取的标准方式。

客户端

public UploadPanel()
{
   Div div = new Div();

   final FormPanel formPanel = new FormPanel();
   formPanel.setEncoding(FormPanel.ENCODING_MULTIPART);
   formPanel.setMethod(FormPanel.METHOD_POST);
   formPanel.setAction("uploadFileServletUrl");
   formPanel.addSubmitCompleteHandler(new FormPanel.SubmitCompleteHandler()
   {
      @Override
      public void onSubmitComplete(SubmitCompleteEvent event)
      {
         GWT.log("event.getResults = " + event.getResults());
      }
   });

   FileUpload fileUpload = new FileUpload();
   fileUpload.getElement().setAttribute("multiple", null);
   fileUpload.setName("abcupload");
   div.add(fileUpload);
   Hidden hidden = new Hidden("id", "8"); //just an example of how to pass a parameter
   div.add(hidden);

   Button butUpload = new Button("Upload");
   div.add(butUpload);
   butUpload.addClickHandler(new ClickHandler()
   {
      @Override
      public void onClick(ClickEvent event)
      {
          formPanel.submit();
      }
   });

   formPanel.add(div);
   this.initWidget(formPanel);
}
这将向服务器发布标准的多部分重新查询。在这里,您只需读取部分(在本例中,您将有一个“id”部分和一个“abcupload”部分,这将是文件)

我不能发布任何Java服务器端代码,因为我总是在服务器端使用C#,但这应该只是在多部分post请求中读取的标准方式