i have worked in file upload.
in The client side use file upload widget
FileUpload fileUpload=new FileUpload();
put this widget in the main grid or any grid . i did in main grid
mainGrid.setWidget(0, 2, fileUpload );
this will make a file upload widget to appear in the page.
you cannot make async call u have to submit the formpanel
formpanel.submit();
My code look like
public void onClick(Widget sender){
if(sender == submit){
if(!"".equalsIgnoreCase(fileUpload.getFilename())
&& !"".equalsIgnoreCase(GroupName.getText())){
cancel.setEnabled(false);
String str="";
str = GroupName.getText();
str= str + "||||" + GroupDescrip.getText();
fileUpload.setName(str);
mainGrid.remove(selectGrid);
Label label=new Label("");
mainGrid.setWidget(0, 3,label );
Label label2=new Label("");
mainGrid.setWidget(1, 3,label2 );
formpanel.submit();
}
then in the server side write this
FileItemFactory factory = new DiskFileItemFactory();
ServletFileUpload upload = new ServletFileUpload(factory);
List items = upload.parseRequest(request);
Iterator it = items.iterator();
while(it.hasNext())
FileItem item = (FileItem) it.next();
you will get the file item
you can make it inputstream by calling a method in it as below.
item.getInputStream();
Ok . cheers