DWR实现无刷新上传

标签: dwr 上传 | 发表时间:2012-06-11 10:58 | 作者:jadyer
出处:http://blog.csdn.net

这里需要用到commons-fileupload-1.2.2和commons-io-2.3


This is the web.xml

<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.5" xmlns="http://java.sun.com/xml/ns/javaee"
	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	xsi:schemaLocation="http://java.sun.com/xml/ns/javaee 
	http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">
	<servlet>
		<servlet-name>dwr-invoker</servlet-name>
		<servlet-class>org.directwebremoting.servlet.DwrServlet</servlet-class>
		<!-- 配置debug参数为true后,就可以访问DWR的控制台了,访问地址为http://ip:port/webApp/dwr/ -->
		<!-- 开发阶段可以开启控制台,但在产品交付时,务必关掉控制台 -->
		<init-param>
			<param-name>debug</param-name>
			<param-value>true</param-value>
		</init-param>
	</servlet>

	<servlet-mapping>
		<servlet-name>dwr-invoker</servlet-name>
		<url-pattern>/dwr/*</url-pattern>
	</servlet-mapping>
</web-app>

This is DWR Config File----dwr.xml

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE dwr PUBLIC "-//GetAhead Limited//DTD Direct Web Remoting 3.0//EN"
"http://getahead.org/dwr/dwr30.dtd">
<dwr>
	<allow>
		<create creator="new" javascript="JSUserManager">
			<param name="class" value="com.jadyer.dwr.UserManager" />
		</create>
	</allow>
</dwr>

下面是用于提交上传操作的前台页面upload.jsp

<%@ page language="java" pageEncoding="UTF-8"%>

<script type="text/javascript" src="<%=request.getContextPath()%>/dwr/interface/JSUserManager.js"></script>
<script type="text/javascript" src="<%=request.getContextPath()%>/dwr/engine.js"></script>
<script type="text/javascript" src="<%=request.getContextPath()%>/dwr/util.js"></script>

<script type="text/javascript">
	function upload() {
		var file = dwr.util.getValue("myfile");
		alert(file.value);//不同浏览器在此处得到的值,不一定相同....IE9得到的是含全路径的文件名,firefox12得到的是文件名
		alert(file);
		JSUserManager.upload(file, file.value, function(data){
			alert(data);
		});
	}
</script>

<input type="file" id="myfile"/>
<input type="button" value="上传文件" onclick="upload()"/>

最后是需要由DWR发布的UserManager.java

package com.jadyer.dwr;

import java.io.File;
import java.io.IOException;
import java.io.InputStream;

import javax.servlet.http.HttpServletRequest;

import org.apache.commons.io.FileUtils;
import org.apache.commons.io.FilenameUtils;
import org.directwebremoting.WebContextFactory;

public class UserManager {
	/**
	 * 上传文件
	 * @param is       DWR会自动把dwr.util.getValue("myfile")转换为这里所需的InputStream
	 * @param filename 不同浏览器传进来的值未必相同,IE9传是含全路径的文件名,firefox12传的是文件名
	 * @return 文件的真实名字
	 */
	public String upload(InputStream is, String filename) throws IOException{
		String realname = FilenameUtils.getName(filename);                            //获取文件的真实名字
		HttpServletRequest request = WebContextFactory.get().getHttpServletRequest(); //获取Servlet API
		String realpath = request.getSession().getServletContext().getRealPath("/WEB-INF/upload");
		FileUtils.copyInputStreamToFile(is, new File(realpath, realname));
		return realname;
	}
}

补充:记得建立//WEB-INF//upload//目录,其用于接收所上传的文件


作者:jadyer 发表于2012-6-11 10:58:41 原文链接
阅读:2 评论:0 查看评论

相关 [dwr 上传] 推荐:

DWR实现无刷新上传

- - CSDN博客推荐文章
这里需要用到commons-fileupload-1.2.2和commons-io-2.3. . .

DWR的安装使用和与spring的整合

- - CSDN博客架构设计推荐文章
1.1拷贝dwr文件包到lib目录下. 1.2编辑web.xml文件,加入如下代码:. 1.3拷贝dwr.xml文件到web.xml文件的目录下:. 1.4在需要使用的页面中引入js文件(第二个是自己定义的java文件的名字). 2.dwr的应用(以下几个类是下面的一些操作需要用到的测试类,可以自行修改).

SpringMVC+ajaxfileupload上传

- - CSDN博客互联网推荐文章
看这篇的文章之前最好看一下上篇文章这样可以更好的理解. 整个项目的基本配置和上面差不多. 不同的是在webRoot文件夹下的js中引入jQuery.js 和ajaxfileupload.js. 如何没有这个两个js文件可以到各自的官网下载. DemoController.java   跳转到upload.jsp.

多文件上传

- - BlogJava-首页技术区
多文件上传 jquery的插件. 使用的方法  导入 jquery.js 及 jquery.MultiFile.js ,. 方式一: 后台是文件数组  .  private File[] upload; // 与jsp表单中的名称对应. 在 form 中加入 即可.

html5 图片上传预览

- - 博客园_首页
  前段时间做html5项目的时候,做了一个图片上传功能,并且可以直接预览,单纯的js就可以实现,很方便的.   这样做比调用后台方便多了,但是只支持html5的,html5以前是不支持的. 未来html5是主流,所以这种方法非常方便的.   几段js代码就可以来实现,而且解析速度也很快. 这种方法值得推广,以后前端也不要为这个烦恼了,还要后台用程序加载出来,那样太浪费时间了.

异步上传文件

- - Web前端 - ITeye博客
通过iframe来实现无刷新的的文件上传,其实是有刷新的,只是在iframe里面隐藏了而已. form里面的target要与iframe里面的id的值相等,指示是form相应了post事件,也就是post时间相应的时候刷新的是iframe而不是整个页面. 用户名:
上传头像:

dubbo处理文件上传

- - 开源软件 - ITeye博客
dubbo和hessian的maven依赖:. 服务提供者(项目名称:provider). 首先是web.xml配置(使用spring):. 最重要的applicationContext.xml :. 参考: dubbo hessian协议. .

springmvc文件上传下载

- - ITeye博客
在网上搜索的代码 参考整理了一份. commons-fileupload.jar与commons-io-1.4.jar二个文件. 1、表单属性为: enctype="multipart/form-data". 2、springmvc配置.

上传图片之上传前预览图片

- - CSDN博客推荐文章
上传图片对图片进行一下预览,可以了解图片上传后大概会是什么样子,此功能用js实现,然后在fileupload控件的change事件中调用,这样当用fileupload选择完图片以后,图片就会自动显示出来了. fileupload控件及用来预览图片的image:. 功能很简单,代码也很易懂,相信不用我多废话大家也能看懂吧.

HTML5之拖拽上传文件及chrome下文件夹上传

- - ITeye博客
最近被安排做一个拖拽上传和文件夹上传的功能,不考虑兼容性,哈哈这个可以用HTML5实现. 这里就不仔细学习HTML5,我只是想找例子,然后偷过来用,至于原理边用边学. 首先这里有一个很好的实例实现拖拽上传: http://blogs.sitepointstatic.com/examples/tech/filedrag/1/index.html.