该内容网上有很多相关搜索,但是都未能解决我的问题。
最后还是自己动手丰衣足食了
首先,建立前台页面,这个建议根据GWT官方API上给出的例子编写。
需要注意的是
form.setAction("/myFormHandler");
最好写成setAction(GWT.getModuleBaseURL + "/myFormHandler")
再就是Servlet的编写了,网上很多利用commons-fileupload库的方法,这里就不多说了
最后,需要注意的是,配置文件web.xml。比如上面的action的配置,假设你的网络应用为aaa,那么需要在web.xml文件中添加
<servlet>
<servlet-name>fileUploadServlet</servlet-name>
<servlet-class>aaa.server.FileUploadImpl</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>fileUploadServlet</servlet-name>
<url-pattern>/aaa/myFormHandler</url-pattern>
</servlet-mapping>
这样,便可以正常上传文件了。
PS:文件上传之后的处理还真是要注意下,不同的浏览器上传之后的文件名居然不一样,我用chrome测试上传之后,到servlet就只是一个文件名,而不是全路径;而使用IE上传之后,居然是全路径。原来只写了一种,当然可想而知,肯定出错啊。呵呵,学习了,今后还要注意下浏览器兼容的问题。
还有,就是不同操作系统中路径分隔符的问题,原来都是使用
"\\"
这种形式,也知道这样不好,应该使用File.seperator来表示,但是由于一直没有出问题所以在windows上也没有改过。可是,今天做了一次应用的迁移,是从windows上移到linux下的。当然,又出错了。。。然后又改源码,真是郁闷。
还有,我在使用File.pathSeperator的时候,怎么变成 ";"了,搞了半天弄明白了,
File.pathSeperator中的path指的是环境变量PATH,而在windows下PATH的分隔符当然是;了,如果在linux下运行,应该就是 :