gwt使用apache-commons-fileUpload,轻松实现文件上传
gwt使用apache-commons-fileUpload,轻松实现文件上传,图片上传等功能。
?1.gwt 前端页面(可以做成组建,供各个模块调用)
FormPanel formPanel ?= new FormPanel(); ?
formPanel.setAction("/uploadImage"); ?
??
formPanel.setEncoding(FormPanel.ENCODING_MULTIPART); ?
formPanel.setMethod(FormPanel.METHOD_POST); ?
??
FlowPanel panel = new FlowPanel(); ?
formPanel.setWidget(panel); ?
??
FileUpload fileUpload = new FileUpload(); ?
fileUpload.setName("file"); ?
panel.add(fileUpload); ?
ok,formpanel触发sumbit即可。下面便是servlet端的实现。 ? ? ? ? ??
?
2.servlet端
FileItemFactory factory = new DiskFileItemFactory(); ? ??
ServletFileUpload upload = new ServletFileUpload(factory); ? ??
? ??
List items = null; ? ??
? ??
try { ? ??
? ? items = upload.parseRequest(request); ? ??
} catch (FileUploadException ex) { ? ??
? ? throw new ServletException(ex); ? ??
} ? ??
? ??
Iterator iter = items.iterator(); ? ??
? ??
while (iter.hasNext()) { ? ??
? ? FileItem item = (FileItem) iter.next(); ? ??
? ? if (item.isFormField() == false) { ? ??
? ? ? ? ?//获得byte数组 ?
? ? ? ? byte[] bytes = item.get(); ?
? ? ? ? //或直接保存成文件 ?
? ? ? ? File file = new FIle("D:/temp",item.getName()); ? ? ?
? ? ? ? item.write(file);//直接保存文件 ? ? ? ? ?
? ? } ? ??
} ??