`
feirou520
  • 浏览: 117420 次
  • 性别: Icon_minigender_1
  • 来自: 重庆
社区版块
存档分类
最新评论

GWT实现文件上传下载

    博客分类:
  • GWT
阅读更多

主要采用的两个包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
分享到:
评论
7 楼 luoming520wen 2011-12-21  
最近我也在用GWT做上传和下载的功能,把代码发我邮箱里面不胜感激啊
6 楼 luoming520wen 2011-12-21  
能帮忙发份代码给我邮箱吗,小弟感激不尽 13556833620@163.com
5 楼 fjxxinxin 2010-08-11  
能帮忙发份代码给我邮箱吗,小弟感激不尽 565101909@qq.com
4 楼 yangkai 2010-04-14  
能发给源代码给我吗?谢谢!

alex1161596325@gmail.com
3 楼 sphinxdwood 2009-05-09  
原来项目里面就有一个servlet,我再新建了一个用于文件上传,提示java.lang.ClassNotFoundException: 这是怎么回事啊?
2 楼 sphinxdwood 2009-05-09  
能把源文件发一份给我吗?sphinxdwood@126.com.谢谢了
1 楼 xyktc_123 2009-01-06  
能把下载的那部分写得详细些吗?

相关推荐

    GWT实现文件上传文件上传

    GWT实现文件上传。包含所需要的jar包,两个代码文件,一个web配置说明。代码简洁,已经测试通过,可以使用。

    使用GWT实现文件上传功能

    Google Web Toolkit中提供了FormPanel和FileUpload类用于以一种友好的方式实现表单处理和文件提交。然而,从其相关的API资料中看出,它们的工作原理...本文小例提供了使用Google Web Toolkit实现文件上传功能的大致过程

    gwt项目开发的经验集

    11,文件下载(download,通过表单方式) 完成 2007年8月6日 10,阻止事件传到父对象 2007年7月31日 9,文件上传客户端(upload隐藏表单) 2007年7月29日 8,不换行:表格字符、多种widget的组合 计划中 7,css的...

    GWT-EXT+IBATIS+SQL实现表格,树,面板

    例子包括对GWT-EXT的对表格,树,面板操作。对与IBATIS数据结合使用。...整个工程文件太大,这里只能上传源代码,如果需要整个工程的可以发邮件给我 xuzhenqinandy@163.com 或加QQ一起交流77544738

    JAVA上百实例源码以及开源项目

     Java实现HTTP连接与浏览,Java源码下载,输入html文件地址或网址,显示页面和HTML源文件,一步步的实现过程请下载本实例的Java源码,代码中包括丰富的注释,对学习有帮助。 Java实现的FTP连接与数据浏览程序 1个...

    云应用开发 ——Google App Engine & Google Web Toolkit入门指南

    4.6 文件上传——FileUpload 4.7 时间选择器——DatePicker 4.8 列表控件——ListBox 4.9 联想输入框——Suggest Box 4.10 树结构——Tree 4.11 菜单条——MenuBar 4.12 栈板——StackPanel 4.13 基本输入框的——...

    AJAX基础概念、核心技术与典型案例(内涵动态实例)

    程序描述:本章使用Prototype封装的Ajax对象实现上传文件时显示进度条的功能。当上传文件时,客户端同时显示文件上传的进度,从而及时了解文件传送情况。 /test.html 上传文件 /periodcal.jsp 上传文件...

    java开源包3

    ftp4j是一个FTP客户端Java类库,实现了FTP客户端应具有的大部分功能文件(包括上传和下 载),浏览远程FTP服务器上的目录和文件,创建、删除、重命,移动远程目录和文件。ftp4j提供多种方式连接到远程FTP服务器包括...

    java开源包10

    ftp4j是一个FTP客户端Java类库,实现了FTP客户端应具有的大部分功能文件(包括上传和下 载),浏览远程FTP服务器上的目录和文件,创建、删除、重命,移动远程目录和文件。ftp4j提供多种方式连接到远程FTP服务器包括...

    java开源包4

    ftp4j是一个FTP客户端Java类库,实现了FTP客户端应具有的大部分功能文件(包括上传和下 载),浏览远程FTP服务器上的目录和文件,创建、删除、重命,移动远程目录和文件。ftp4j提供多种方式连接到远程FTP服务器包括...

    JAVA上百实例源码以及开源项目源代码

    Java源码下载 1个目标文件 摘要:Java源码,网络相关,HTTP   Java实现HTTP连接与浏览,Java源码下载,输入html文件地址或网址,显示页面和HTML源文件,一步步的实现过程请下载本实例的Java源码,代码中包括丰富的...

    Grails 中文参考手册

    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....

    java开源包1

    ftp4j是一个FTP客户端Java类库,实现了FTP客户端应具有的大部分功能文件(包括上传和下 载),浏览远程FTP服务器上的目录和文件,创建、删除、重命,移动远程目录和文件。ftp4j提供多种方式连接到远程FTP服务器包括...

    java开源包11

    ftp4j是一个FTP客户端Java类库,实现了FTP客户端应具有的大部分功能文件(包括上传和下 载),浏览远程FTP服务器上的目录和文件,创建、删除、重命,移动远程目录和文件。ftp4j提供多种方式连接到远程FTP服务器包括...

    java开源包2

    ftp4j是一个FTP客户端Java类库,实现了FTP客户端应具有的大部分功能文件(包括上传和下 载),浏览远程FTP服务器上的目录和文件,创建、删除、重命,移动远程目录和文件。ftp4j提供多种方式连接到远程FTP服务器包括...

    java开源包6

    ftp4j是一个FTP客户端Java类库,实现了FTP客户端应具有的大部分功能文件(包括上传和下 载),浏览远程FTP服务器上的目录和文件,创建、删除、重命,移动远程目录和文件。ftp4j提供多种方式连接到远程FTP服务器包括...

    java开源包5

    ftp4j是一个FTP客户端Java类库,实现了FTP客户端应具有的大部分功能文件(包括上传和下 载),浏览远程FTP服务器上的目录和文件,创建、删除、重命,移动远程目录和文件。ftp4j提供多种方式连接到远程FTP服务器包括...

Global site tag (gtag.js) - Google Analytics