求gxt 文件上传实例(在gxt中如何提交formpanel,服务端怎么设计),求高手!
FormPanel form = new FormPanel();
form .setMethod(Method.POST);
form .setEncoding(Encoding.MULTIPART);
FileUploadField fileUpload = new FileUploadField();
fileUpload.getMessages().setBrowseText(msg.browse());
fileUpload.setFieldLabel(msg.file());
fileUpload.setId("upload");
fileUpload.setName("upload");
form.add(fileUpload);
form.setAction(GWT.getModuleBaseURL()+"uploadImageServlet");
form.addListener(Events.Submit,new Listener() {
@Override
public void handleEvent(FormEvent be) {
hide();
}
});
form.submit();
form.onFrameLoad();
web.xml
uploadImageServlet
xx.UploadImageServlet
uploadImageServlet
/xx/uploadImageServlet
UploadImageServlet.java
这里引用了 commons-fileupload-1.2.1.jar
public class UploadImageServlet extends HttpServlet{
public static final QuetzacoLogger log = QuetzacoWebLogger.getInstance();
@Override
protected void doGet(final HttpServletRequest request,
final HttpServletResponse response) throws ServletException,
IOException {
..
}
protected void doPost(final HttpServletRequest request,
final HttpServletResponse response) throws ServletException,
IOException {
DiskFileItemFactory factory = new DiskFileItemFactory();
factory.setFileCleaningTracker(FileCleanerCleanup.getFileCleaningTracker(getServletContext()));
ServletFileUpload upload = new ServletFileUpload(factory);
try {
List<FileItem> items = upload.parseRequest(request);
for (final FileItem item : items) {
if (!item.isFormField()) {
String fileName = item.getName();
item.write(new File(request.getRealPath("/upload"),fileName));
}
}
}catch (Exception e) {
e.printStackTrace();
}
}
}