关于GWT的文件上传网上有封装比较好的例子 大家可以搜索:gwtextux。
gwtextux是基于GWT-EXT开发的。本文写的是针对GXT组件开发的文件上传例子。
GXT 文件上传主要分五步:
第一步,设置Form的提交属性
// 选择上传路径 form
FormPanel formPanel = new FormPanel ();
// 设置form参数MULTIPART
formPanel.setEncoding (FormPanel.Encoding.MULTIPART);
// 设置提交方式POST
formPanel.setMethod (FormPanel.Method.POST);
// 设置上传请求地址
formPanel.setAction ("fileupload.do");
第二步:添加上传组件
// 文件选择
FileUploadField fileUploadField = new FileUploadField ();
fileUploadField.setFieldLabel ("请选择上传文件");
fileUploadField.setName ("file");
第三步:提交按钮
Button button = new Button ("上传");
button.addListener (Events.OnClick, new Listener <BaseEvent> ()
{
@Override
public void handleEvent (BaseEvent be)
{
formPanel.submit ();
}
第四步:后台接受上传流的Servlet
public void doPost (HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException
{
// 获取上传句柄
ServletFileUpload upload = new ServletFileUpload ();
FileItemIterator iter;
HttpSession session = request.getSession ();
// 获取文件长度
String fileSizeString = request.getHeader ("Content-Length");
//将文件长度转化为数字
String sourceidString = null;
try
{
// 从request中获取参数
iter = upload.getItemIterator (request);
while (iter.hasNext ())
{
FileItemStream item = iter.next ();
// 资源名称
if (TermStrings.SOURCE_FILED.equals (item.getFieldName ()))
{
InputStream stream = item.openStream ();
sourceidString = Streams.asString (stream, "utf-8");
}
// 获取文件输入流
if ("file".equals (item.getFieldName ()))
{
// 获得系统时间
BufferedInputStream bin = new BufferedInputStream (item.openStream ());
// 获得文件路径
String filePath = getServletContext ().getRealPath ("后台存储文件.xls");
File file = new File (filePath);
// 创建写文件的流
BufferedOutputStream bout = new BufferedOutputStream (new FileOutputStream (file));
byte[] b = new byte[8 * 1024];
int i = bin.read (b);
while (i > 0)
{
//写入文件
bout.write (b, 0, i);
i = bin.read (b);
}
bout.flush ();
bout.close ();
第五步:web.xml
<servlet-mapping>
<servlet-name>FileUpload</servlet-name>
<url-pattern>/fileupload.do</url-pattern>
</servlet-mapping>
<servlet>
<servlet-name>FileUpload</servlet-name>
<servlet-class>net.carefx.term.server.servlet.FileUpload</servlet-class>
</servlet>
如果要实现读取进度,我的做法是时间轮训,通过后台获取文件长度:
String fileSizeString = request.getHeader ("Content-Length");
总长度,然后根据文件写入流的写入次数判断写入的百分比。将此数据在前台显示。
文件上传需要使用第三方jar包
commons-fileupload-1.2.1.jar
分享到:
相关推荐
而GXT是基于GWT的UI库,提供了丰富的组件和更美观的界面设计,尤其在数据网格、图表和文件上传等交互功能上表现优秀。 文件上传在Web应用中是一项常见需求,GWT和GXT都提供了相应的解决方案。在GWT中,文件上传通常...
GXT文件是Rockstar Games为《侠盗猎车手》系列游戏开发的一种特殊格式,用于存储游戏中的各种文本,包括菜单选项、对话、提示等。 这款编辑器的主要功能包括: 1. **文本编辑**:用户可以打开并编辑GXT文件,查看...
**GXT软件包和API详解** GXT,全称为GWT Ext,是基于Google Web Toolkit (GWT) 的一个强大的Java UI库。它为开发者提供了丰富的用户界面组件和功能,使得构建复杂的、企业级的Web应用程序变得更加便捷。GXT不仅在...
该存储库包含反编译的GXT文件和它们的编译器。 运行build_[game]_[platform].bat为您想要的游戏快速构建 GXT。 反编译的 GXT 使用原始源的语法将 GXT 文件反编译为 TXT。 字符串大多按照它们在原始源文件中的顺序...
这是GTA4里的源文件american.gxt
"包含resource"这部分意味着压缩包中可能包含了GXT库的资源文件,这些文件通常包括CSS样式表、图像、本地化字符串等,它们对于自定义GXT组件的外观和行为至关重要。资源文件使得开发者可以通过简单的配置改变应用的...
**压缩包子文件的文件名称列表**: 1. **初识ExtGWT.docx**: 这份文档将引导我们进入GXT的世界,涵盖其核心概念和基础用法,例如如何创建一个新的GXT项目,如何添加组件,以及如何处理用户交互。 2. **GXT组件...
**GXT项目详解** GXT,全称是GWT eXtensions,是Sencha公司为Google Web Toolkit(GWT)开发的一套丰富的用户界面组件库。GXT项目旨在为Web应用程序提供桌面级别的用户体验,利用JavaScript和HTML5技术,使得在...
以下是根据提供的文件内容总结出的详细知识点: ### 什么是ExtGWT(GXT) ExtGWT(GXT)是一个为GWT项目提供的扩展工具库。它利用了GWT框架的能力,允许Java开发者使用Java语言编写Web界面应用程序,相当于Web上的...
### GXT学习的好书知识点详解 #### 一、GXT简介 GXT(GXT是Ext GWT的简称)是一款基于Google Web Toolkit (GWT) 的开源Java库,用于构建高性能的企业级富客户端应用程序。GXT 提供了丰富的UI组件集合、数据网格以及...
gxt是ext使用gwt api开发的一套东东。比使用原始gwt开发是要轻松一些的。
在IT行业中,GXT(Ext GWT)是一种用于构建富客户端Web应用的JavaScript库,它基于Google的GWT(Google Web Toolkit)。GXT提供了一系列组件,使得开发者可以创建功能丰富的用户界面,类似于桌面应用程序的体验。...
标题 "gxt-1.2.3.jar.zip" 指的是一个包含GXT库的压缩文件,版本为1.2.3。GXT,全称为Google Web Toolkit EXT,是Google Web Toolkit(GWT)的一个扩展,它提供了一系列丰富的用户界面组件,用于构建功能强大的Web...
在自定义GXT应用的外观时,了解此CSS文件可以帮助开发者更好地调整和定制GXT组件的样式。 3. **索引和概述** `index-all.html` 是完整的类和接口索引,方便开发者查找特定的API。`overview-tree.html` 提供了一个...
在【压缩包子文件的文件名称列表】中,"gwt+gxt"可能表示的是包含GWT和GXT库的JAR文件,例如GWT的gwt-user.jar、gwt-dev.jar以及GXT的gxt.jar、gxt-theme-neptune.jar等。这些JAR文件通常需要添加到项目的类路径中,...
4. **创建GXT模块**:打开`src/main/java`目录下的`com.yourcompany.yourproject.gwt/YourProject.gwt.xml`文件,添加以下GXT依赖: ```xml <inherits name='com.extjs.gxt.ui.GXT' /> ``` 5. **创建第一个GXT...
至于文件 "client",这通常是GWT项目中的一个关键部分,包含了所有与客户端相关的代码,如用户界面、事件处理、业务逻辑和本地化的JavaScript代码。在GWT项目中,`client`目录通常包括以下几个子目录: 1. `src` - ...
《GXT 2.2.5:Ext-GWT的增强工具包详解》 GXT,全称为GWT eXtension,是由EXTJS团队开发的一个用于Google Web Toolkit(GWT)的扩展库,旨在为GWT开发者提供更丰富、更强大的用户界面组件和功能。GXT 2.2.5是该系列...
1. **gxt-javadoc.css**:这是样式表文件,用于定义文档的呈现样式,使文档更易阅读和导航。 2. **index-all.html**:整体索引页面,列出所有类和接口,是快速查找和定位API的入口。 3. **overview-tree.html**:...