主要采用的两个包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实现文件上传。包含所需要的jar包,两个代码文件,一个web配置说明。代码简洁,已经测试通过,可以使用。
Google Web Toolkit中提供了FormPanel和FileUpload类用于以一种友好的方式实现表单处理和文件提交。然而,从其相关的API资料中看出,它们的工作原理...本文小例提供了使用Google Web Toolkit实现文件上传功能的大致过程
11,文件下载(download,通过表单方式) 完成 2007年8月6日 10,阻止事件传到父对象 2007年7月31日 9,文件上传客户端(upload隐藏表单) 2007年7月29日 8,不换行:表格字符、多种widget的组合 计划中 7,css的...
例子包括对GWT-EXT的对表格,树,面板操作。对与IBATIS数据结合使用。...整个工程文件太大,这里只能上传源代码,如果需要整个工程的可以发邮件给我 xuzhenqinandy@163.com 或加QQ一起交流77544738
Java实现HTTP连接与浏览,Java源码下载,输入html文件地址或网址,显示页面和HTML源文件,一步步的实现过程请下载本实例的Java源码,代码中包括丰富的注释,对学习有帮助。 Java实现的FTP连接与数据浏览程序 1个...
4.6 文件上传——FileUpload 4.7 时间选择器——DatePicker 4.8 列表控件——ListBox 4.9 联想输入框——Suggest Box 4.10 树结构——Tree 4.11 菜单条——MenuBar 4.12 栈板——StackPanel 4.13 基本输入框的——...
程序描述:本章使用Prototype封装的Ajax对象实现上传文件时显示进度条的功能。当上传文件时,客户端同时显示文件上传的进度,从而及时了解文件传送情况。 /test.html 上传文件 /periodcal.jsp 上传文件...
ftp4j是一个FTP客户端Java类库,实现了FTP客户端应具有的大部分功能文件(包括上传和下 载),浏览远程FTP服务器上的目录和文件,创建、删除、重命,移动远程目录和文件。ftp4j提供多种方式连接到远程FTP服务器包括...
ftp4j是一个FTP客户端Java类库,实现了FTP客户端应具有的大部分功能文件(包括上传和下 载),浏览远程FTP服务器上的目录和文件,创建、删除、重命,移动远程目录和文件。ftp4j提供多种方式连接到远程FTP服务器包括...
ftp4j是一个FTP客户端Java类库,实现了FTP客户端应具有的大部分功能文件(包括上传和下 载),浏览远程FTP服务器上的目录和文件,创建、删除、重命,移动远程目录和文件。ftp4j提供多种方式连接到远程FTP服务器包括...
Java源码下载 1个目标文件 摘要:Java源码,网络相关,HTTP Java实现HTTP连接与浏览,Java源码下载,输入html文件地址或网址,显示页面和HTML源文件,一步步的实现过程请下载本实例的Java源码,代码中包括丰富的...
6.7.3 用GWT实现Ajax 6.7.4 服务端的Ajax 6.8 内容协商 7. 验证 7.1 声明约束 7.2 验证约束 7.3 客户端验证 7.4 验证和国际化 8. 服务层 8.1 声明式事务 8.2 服务的作用域 8.3 依赖注入和服务 8.4 使用Java的服务 9....
ftp4j是一个FTP客户端Java类库,实现了FTP客户端应具有的大部分功能文件(包括上传和下 载),浏览远程FTP服务器上的目录和文件,创建、删除、重命,移动远程目录和文件。ftp4j提供多种方式连接到远程FTP服务器包括...
ftp4j是一个FTP客户端Java类库,实现了FTP客户端应具有的大部分功能文件(包括上传和下 载),浏览远程FTP服务器上的目录和文件,创建、删除、重命,移动远程目录和文件。ftp4j提供多种方式连接到远程FTP服务器包括...
ftp4j是一个FTP客户端Java类库,实现了FTP客户端应具有的大部分功能文件(包括上传和下 载),浏览远程FTP服务器上的目录和文件,创建、删除、重命,移动远程目录和文件。ftp4j提供多种方式连接到远程FTP服务器包括...
ftp4j是一个FTP客户端Java类库,实现了FTP客户端应具有的大部分功能文件(包括上传和下 载),浏览远程FTP服务器上的目录和文件,创建、删除、重命,移动远程目录和文件。ftp4j提供多种方式连接到远程FTP服务器包括...
ftp4j是一个FTP客户端Java类库,实现了FTP客户端应具有的大部分功能文件(包括上传和下 载),浏览远程FTP服务器上的目录和文件,创建、删除、重命,移动远程目录和文件。ftp4j提供多种方式连接到远程FTP服务器包括...