主要采用的两个包gwtextux.jar(0.4版本)和commons-fileupload-1.2.1.jar来完成。
在gwt.xml里添加此内容
如你所见,相关JS(在gwtextux.jar包里)放在public/js/下面,与xml对应
<module>
<entry-point class='com.google.gwt.client.test'/>
<stylesheet src='test.css' />
<stylesheet src="js/resources/css/ext-all.css" />
<script src="js/adapter/ext/ext-base.js" />
<script src="js/ext-all.js" />
<inherits name="com.gwtext.GwtExt"/>
<!-- upload -->
<servlet path="/UploadSvc" class="com.google.gwt.service.UploadSvcImpl" />
<inherits name="com.gwtextux.GwtExtUx"/>
<inherits name="com.gwtextux.UploadDialog"/>
<script src="js/Ext.ux.UploadDialog.js" />
<!-- upload -->
</module>
客户端:
import com.google.gwt.core.client.EntryPoint;
import com.google.gwt.user.client.ui.RootPanel;
import com.gwtext.client.widgets.Button;
import com.gwtext.client.widgets.Panel;
import com.gwtext.client.widgets.event.ButtonListenerAdapter;
import com.gwtext.client.core.EventObject;
import com.gwtext.client.core.UrlParam;
import com.gwtextux.client.widgets.upload.UploadDialog;
public class UploadDialogSample implements EntryPoint{
public void onModuleLoad() {
Panel panel = new Panel();
Button button = new Button("Upload File", new ButtonListenerAdapter() {
public void onClick(final Button button, EventObject e) {
UploadDialog dialog = new UploadDialog();
//于xml对应
dialog.setUrl("UploadSvc");
//上传文件类型
//dialog.setPermittedExtensions(new String[]{"jpg", "gif"});
//参数
UrlParam param[] = new UrlParam[2];
param[0]=new UrlParam("name1", "value1");
param[1]=new UrlParam("name2", "value2");
dialog.setBaseParams(param);
//上传数据名称 并非文件名
dialog.setPostVarName("myvar");
dialog.show();
}
});
panel.add(button);
RootPanel.get().add(panel);
}
}
服务端:
import java.io.BufferedInputStream;
import java.io.BufferedOutputStream;
import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.apache.commons.fileupload.FileItemIterator;
import org.apache.commons.fileupload.FileItemStream;
import org.apache.commons.fileupload.servlet.ServletFileUpload;
import org.apache.commons.fileupload.util.Streams;
import com.google.gwt.core.client.GWT;
public class UploadSvcImpl extends HttpServlet {
private static final long serialVersionUID = 1L;
protected void doPost(HttpServletRequest req, HttpServletResponse resp)
throws ServletException, IOException {
/*
* The following commented code uses Apache Commons Upload
*/
// Check that we have a file upload request
boolean isMultipart = ServletFileUpload.isMultipartContent(req);
GWT.log("is multipart? " + Boolean.toString(isMultipart), null);
// Create a new file upload handler
ServletFileUpload upload = new ServletFileUpload();
try {
// Parse the request
FileItemIterator iter = upload.getItemIterator(req);
while (iter.hasNext()) {
FileItemStream item = iter.next();
String name = item.getFieldName();
InputStream stream = item.openStream();
if (item.isFormField()) {
System.out.println("Form field " + name + " with value "
+ Streams.asString(stream) + " detected.");
} else {
System.out.println("File field " + name
+ " with file name " + item.getName()
+ " detected.");
BufferedInputStream inputStream = new BufferedInputStream(
stream);// 获得输入流
BufferedOutputStream outputStream = new BufferedOutputStream(
new FileOutputStream(new File("/var/app/fax/"
+ item.getName())));// 获得文件输出流
Streams.copy(inputStream, outputStream, true); // 开始把文件写到你指定的上传文件夹
}
stream.close();
}
System.out.println("上传成功!");
} catch (Exception ex) {
ex.printStackTrace();
}
}
}
你也可以直接访问http://max-bazhenov.com/dev/upload-dialog-2.0/index.php
下载:
grid里双击触发下载
protected void onGridRowDblClick(GridPanel grid, int rowIndex, EventObject e) {
// test.rar在 public目录下
Window.open(GWT.getHostPageBaseURL()+"test.rar", "", "");
}
- 描述: 效果图
- 大小: 63.6 KB
分享到:
相关推荐
标题 "GWT实现文件上传" 涉及到的技术核心是使用Google Web Toolkit(GWT)来处理客户端的文件上传功能。GWT是一款强大的开发工具,它允许开发者使用Java语言编写客户端的Web应用,然后自动编译成JavaScript,使得...
以上就是使用GWT实现文件上传的基本步骤。需要注意的是,这只是一个基础示例,实际应用中还需要考虑错误处理、安全性(防止上传恶意文件)、文件大小限制以及并发上传等问题。此外,为了提高用户体验,可以使用...
文件上传是GWT和GXT中常见的功能,通过以上方法,开发者可以创建出用户友好的文件上传界面,并实现与服务器的数据交换。在处理文件上传时,理解这些基本概念和API是至关重要的,这将有助于构建出高效、安全的Web应用...
GWT通过`FileUpload`组件支持文件上传,而下载则通常通过服务器端生成下载链接,客户端通过JavaScript或GWT代码触发下载。需要注意的是,由于浏览器安全限制,文件下载通常不能通过Ajax异步方式进行。 #### 四、GWT...
为了深入学习GWT,你可以参考官方文档、在线教程、社区论坛以及各种GWT相关的书籍。不断实践和探索,才能更好地掌握GWT的精髓,利用其优势开发出优秀的Web应用程序。 总之,"gwt_demo.rar"是一个很好的起点,通过...
完成验证后,即可通过Eclipse的部署功能将应用上传至Google服务器。部署过程中,需确保本地编译无误,并正确处理代理设置(如有)。成功部署后,应用可通过“appID.appspot.com”的URL在线访问。 GWT的强大之处在于...
这通过`gwt:devmode`命令实现,该命令启动一个内置的Jetty服务器并打开浏览器加载应用。 6. **源码组织**: `TodoListApp`很可能是一个主类的名字,它可能是GWT应用的入口点。源代码可能包含了业务逻辑、视图组件...
总之,这个压缩包提供了全面的GWT界面开发实践,从基本的UI组件使用到解决浏览器兼容性问题,再到实现文件操作功能,对于学习和理解GWT技术及其在实际项目中的应用具有很高的价值。通过深入研究这些源代码,开发者...
在GWT中,实现文件上传通常需要使用隐藏表单的方式。 #### 示例代码 以下是一个使用隐藏表单实现文件上传的示例: ```java public class FileUploadExample extends Composite { public FileUploadExample() { ...
1. **GWT环境搭建**:首先,你需要下载并安装GWT SDK,然后配置IDE,如Eclipse或IntelliJ IDEA,以支持GWT开发。可能还需要设置构建工具,如Maven或Gradle,来管理项目依赖。 2. **创建GWT项目**:使用IDE的GWT插件...
对于多文件上传,可以创建多个进度条,每个对应一个正在上传的文件,以便用户能够清晰地看到每个文件的上传状态。 在GWT(Google Web Toolkit)环境中,我们可以利用GWT的事件处理和DOM操作能力,封装一个上传组件...
7. **发布与升级**:一旦应用测试通过,可以将WAR文件上传到Liferay的控制台进行发布,或者将更新的WAR文件放入Liferay的部署目录,系统会自动检测并更新portlet。 在提供的文件列表中,`build.properties`是Ant...
1. **FileUpload**:文件上传控件。可以通过 `setName()` 方法设置表单元素的名称。 2. **FlexTable and Grid**:表格控件,类似于HTML中的 `<table>`。可以使用 `setText()`, `setHTML()`, `setWidget()` 等方法...
总结来说,这个"gwt文件上传下载架包"是一个包含三个关键组件的解决方案,用于在基于GWT的Java Web应用中实现高效、安全的文件上传和下载功能。这些组件协同工作,提供了从用户界面交互到后台处理的完整流程支持,是...
例子包括对GWT-EXT的对表格,树,面板操作。对与IBATIS数据结合使用。...整个工程文件太大,这里只能上传源代码,如果需要整个工程的可以发邮件给我 xuzhenqinandy@163.com 或加QQ一起交流77544738
这个项目的源码可能包含了Django的模型定义、视图函数、模板文件以及GWT的Java源代码、资源文件和编译后的JavaScript代码。通过分析这些文件,开发者可以学习到如何在实际项目中整合Django和GWT,以及如何构建一个...