DWR 3.0 上传文件
DWR使用步骤

DWR(direct web remote)是一个基于服务器端的ajax框架。
通过该框架,我们可以使用js来直接调用java方法。
Prototype.js是一个基于浏览器其端的ajax框架,只需要引入prototype.js即可使用。
Jquery:1.引入jar包到WEB-INF/lib2.web.xml中写入:<servlet><servlet-name>dwr-invoker</servlet-name><servlet-class>uk.ltd.getahead.dwr.DWRServlet</servlet-class><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>3.建立java类(普通java类即可,不是servlet)TestClasspublic class TestClass {public void testMethod1(){System.out.println("hello dwr!");}}4.在/WEB-INF/dwr.xml中配置java类:<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE dwr PUBLIC "-//GetAhead Limited//DTD Direct Web Remoting 2.0//EN" "/dwr/dwr20.dtd"><dwr><allow><create creator="new" javascript="testClass" ><param name="class" value= "com.dwr.TestClass" /></create></allow></dwr>5.在1..html中使用,需要首先引入:(需要保证dwr这个目录位于web应用的根目录)<script src='dwr/interface/testClass.js'></script><script src='dwr/engine.js'></script><script src='dwr/util.js'></script>6.在javascript方法中调用后台java类方法:function test(){testClass.testMethod1();}用dwr调用有参数或有返回值的java方法:function test(){testClass.javaMethod2("bbb",parseInfo);//若java方法需要传参,处理响应数据的函数名放到参数列表后面。
ofdrw用法 -回复

ofdrw用法-回复OFDRW(Office File Drag and Drop for Web)是一种用于Web应用程序的文件拖放解决方案。
它可以在网页上实现类似于原生桌面应用程序的文件拖放功能,并提供了丰富的API和插件,使开发人员能够轻松地集成和定制。
OFDRW的用法非常简单和直观。
下面我将一步一步回答关于OFDRW的常见问题,帮助您了解如何使用它。
1. 什么是OFDRW?OFDRW是一种用于Web应用程序的文件拖放解决方案。
它基于HTML5和JavaScript技术,可以在网页上实现文件的拖放和上传功能。
OFDRW 不仅提供了易于使用的拖放API,还提供了强大的插件系统,方便开发人员进行功能定制和扩展。
2. 如何使用OFDRW?使用OFDRW非常简单。
首先,您需要在网页中引入OFDRW的JavaScript 库和CSS样式表。
然后,您可以使用简单的HTML标记来创建拖放区域,例如:<div id="dropzone">将文件拖拽到此处</div>3. 如何处理拖放事件?在此示例中,我们为拖放区域绑定了一个事件处理函数,用于处理文件的拖放。
在该函数中,您可以使用OFDRW的API来处理文件的上传和其他操作。
下面是一个简单的事件处理函数的示例:var dropzone = document.getElementById("dropzone");dropzone.addEventListener("drop", function(event){event.preventDefault();var files = event.dataTransfer.files;处理文件上传操作OFDRW.upload(files);});在此示例中,我们首先使用event.preventDefault()阻止浏览器默认的文件打开操作。
dwr3.0消息推送后台配置

1.介绍DWR(Direct Web Remoting)是一个用于改善web页面与Java类交互的远程服务器端Ajax开源框架,可以帮助开发人员开发包含AJAX技术的网站。
它可以允许在浏览器里的代码使用运行在WEB服务器上的JA V A函数,就像它就在浏览器里一样。
2.dwr学习步骤这几天做项目,需要一个消息提醒功能,决定用dwr实现,在dwr官网和网上找了很多资料,也没实现精准推送,大多数的例子具体步骤写的不清楚,不怎么了解dwr的人看了也未必能看懂,反正我是没看懂,那时就决定,若自己实现了,一定将具体步骤写下来,希望能给那些和我一样的人一些帮助。
我只写步骤,不写原理,下面开始。
第一、在项目中引入dwr.jar,然后在web.xml中进行配置,配置如下:<servlet><servlet-name>dwr-invoker</servlet-name><servlet-class>org.directwebremoting.servlet.DwrServlet</servlet-class><init-param><param-name>crossDomainSessionSecurity</param-name><param-value>false</param-value></init-param><init-param><param-name>allowScriptTagRemoting</param-name><param-value>true</param-value></init-param><init-param><param-name>classes</param-name><param-value>ng.Object</param-value></init-param><init-param><param-name>activeReverseAjaxEnabled</param-name><param-value>true</param-value></init-param><init-param><param-name>initApplicationScopeCreatorsAtStartup</param-name><param-value>true</param-value></init-param><init-param><param-name>maxWaitAfterWrite</param-name><param-value>3000</param-value></init-param><init-param><param-name>debug</param-name><param-value>true</param-value></init-param><init-param><param-name>logLevel</param-name><param-value>W ARN</param-value></init-param></servlet>第二:在web.xml的同级目录下新建dwr.xml文件,内容如下<!DOCTYPE dwr PUBLIC"-//GetAhead Limited//DTD Direct Web Remoting 3.0//EN""/dwr/dwr30.dtd"><dwr><alow><create creator="new" javascript="MessagePush"><param name="class" value="com.huatech.messageremind.service.MessagePush"/> </create></alow></dwr>这个是dwr的基本配置,MessagePush在页面的javascript中使用,com.huatech.messageremind.service.MessagePush实现了想要调用的方法,MessagePush我觉得就相当于java类中的一个映射,在javascript中使用MessagePush.java类中实现的方法,即可在dwr中调用。
dwr后台推送技术

dwr 后台推送技术实例分为两个页面sendMsg.jsp页面,发送一段消息给后台,然后后台将消息推送到showMsg.jsp页面web.xml配置[html]view plaincopyprint?1.<?xml version="1.0"encoding="UTF-8"?>2.<web-app xmlns:xsi="http://www.w/2001/XMLSchema-instance"xmlns="/xml/ns/javaee"xmlns:web="/xml/ns/javaee/web-app_2_5.xsd"xsi:schemaLocation="/xml/ns/javaee/xml/ns/javaee/web-app_2_5.xsd"id="WebApp_ID"version="2.5">3.<display-name>dwr3</display-name>4.<welcome-file-list>5.<welcome-file>index.jsp</welcome-file>6.</welcome-file-list>7.<servlet>8.<servlet-name>dwr-invoker</servlet-name>9.<servlet-class>uk.ltd.getahead.dwr.DWRServlet</servlet-class>10.<init-param>11.<param-name>debug</param-name>12.<param-value>true</param-value>13.</init-param>14.<!-- 使用polling和comet的方式 -->15.<init-param>16.<param-name>pollAndCometEnabled</param-name>17.<param-value>true</param-value>18.</init-param>19.<load-on-startup>1</load-on-startup>20.</servlet>21.<servlet-mapping>22.<servlet-name>dwr-invoker</servlet-name>23.<url-pattern>/dwr/*</url-pattern>24.</servlet-mapping>25.</web-app>sendMsg.java 推送类[java]view plaincopyprint?1.package com.zf.dwr;2.3.import java.util.Collection;4.5.import org.directwebremoting.ScriptBuffer;6.import org.directwebremoting.ScriptSession;7.import org.directwebremoting.WebContext;8.import org.directwebremoting.WebContextFactory;9.import org.directwebremoting.proxy.dwr.Util;10.11.public class SendMsg {12.13.@SuppressWarnings("deprecation")14.public void sendMsg(String msg){15.//得到上下文16.WebContext contex = WebContextFactory.get();17.18.//得到要推送到的页面 dwr3为项目名称,一定要加上。
怎样使用Dreamweaver上传文件

怎样使用Dreamweaver上传文件
作者:CN ZZ 来源:中国站长之家原创
更新时间:2006-11-24 13:33:16
如果你的网站是通过DreamWeaver 制作的,大家可以使用DreamWeaver自带的上传工具上传文件,但站长建议大家使用FlashFxp上传文件,教程详见上一节。
为了方便叙述,本文是DreamWeaver 称DW,通用于DreamWeaverMX ,MX2004 ,8.0。
1、如果没有站点,请先新建站点(已建站点可跳过这步),点击站点菜单中的新建站点,出现下图画面,在输入站点名称,随意输入一个就可以了,点下一步;
2、选择服务器技术,选择否即可;
3、选择编辑方式,选择第一个,推荐的即可;然后选择站点存放位置,点一下即可;
4、连接到服务器方式选择:FTP,
FTP地址:输入你申请空间时得到的FTP主机地址,可以是域名;
存放地址:输入在服务器存放的文件夹,一般可不填;
FTP用户名和密码:输入FTP用户密码;
点击测试可以测试是否能成功连接到远程服务器点击下一步;
5、点击下一下,选择否,点下一步,选择完成。
6、如果文件面板没有打开,点击窗口/文件(F8),在文件面板中选择要上传的文件,右击选择上传即可。
7、已经创建好了站点的朋友,按上面的方法直接选择站点/管理站点,设置FTP即可。
Servlet3.0实现文件上传的方法

Servlet3.0实现⽂件上传的⽅法Servlet 实现⽂件上传所谓⽂件上传就是将本地的⽂件发送到服务器中保存。
例如我们向百度⽹盘中上传本地的资源或者我们将写好的博客上传到服务器等等就是典型的⽂件上传。
Servlet 3.0上次完成⽂件下载功能使⽤的是 Servlet 2.5,但是想要完成⽂件上传,那么继续使⽤Servlet 2.5 肯定不是⼀个好的选择,因此我们使⽤ Servlet 3.0 来完成⽂件上传。
下⾯我来简单介绍⼀下 Servlet 3.0 的新特性:1、新增的注解⽀持该版本新增了若⼲注解,⽤于简化 Servlet、过滤器(Filter)和监听器(Listener)的声明,这使得 web.xml 部署描述⽂件从该版本开始不再是必选的了。
2、HttpServletRequest 对⽂件上传的⽀持此前,对于处理上传⽂件的操作⼀直是让开发者头疼的问题,因为 Servlet 本⾝没有对此提供直接的⽀持,需要使⽤第三⽅框架来实现,⽽且使⽤起来也不够简单。
如今这都成为了历史,Servlet 3.0 已经提供了这个功能,⽽且使⽤也⾮常简单。
Servlet 3.0 的新特性当然肯定不⽌这些,但是其他的新特性在这⾥我们暂时还⽤不到,也就不做过多了解了。
必要条件想要完成⽂件上传,肯定不是这么简单,它对浏览器端和服务器端都有许多的要求。
对浏览器的要求:1. ⼀个⽂件的⼤⼩⼀般肯定不⽌ 1 KB,既然这样,那么要上传⼀个⽂件肯定不能使⽤get⽅式了,所以上传⽂件时必须采⽤post ⽅式。
2. 2.表单中必须有⼀个⽂件上传项<input type="file"> ,⽽且必须有 name 属性。
3. 必须设置表单的enctype 属性值为multipart/form-data。
对服务器的要求:1. 当然,我们肯定得使⽤ Servlet 3.0。
2. Servlet3.0 中接收普通上传组件(除了⽂件上传组件)通过 request.getParameter(String)接收,⽽⽂件上传组件通过request.getPart(String)接收。
springMVC整合DWR配置与简单实例

SpringMVC整合DWR3.0 与实例从网上找了好多资料,都不完整,花了好长时间才弄好,现在整理一下,给朋友们分享一下,也希望能提出问题,完善项目。
1、首先要下载DWR3.0 JAR包(这个是必须的,不多解释哈)DWR3.0下载地址/detail/qfq1990/78668072、配置项目web.xml文件<servlet><servlet-name>springMVC</servlet-name><servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class><load-on-startup>1</load-on-startup></servlet><servlet-mapping><servlet-name>springMVC</servlet-name><url-pattern>/</url-pattern></servlet-mapping><servlet-mapping><servlet-name>springMVC</servlet-name><url-pattern>/dwr/*</url-pattern></servlet-mapping>3、配置springMVC-servlet.xml文件<beans xmlns="/schema/beans"xmlns:context="/schema/context"xmlns:p="/schema/p"xmlns:mvc="/schema/mvc"xmlns:xsi="/2001/XMLSchema-instance"xmlns:dwr="/schema/spring-dwr"xsi:schemaLocation="/schema/beans/schema/beans/spring-beans-3.2.xsd/schema/context/schema/context/spring-context.xsd/schema/spring-dwr/schema/spring-dwr-3.0.xsd/schema/mvc/schema/mvc/spring-mvc-3.2.xsd"><bean class="org.springframework.web.servlet.view.ContentNegotiatingViewResolver"> <property name="mediaTypes"><map><entry key="json" value="application/json"></entry><entry key="xml" value="text/xml"></entry><entry key="htm" value="text/html"></entry></map></property></bean><context:component-scan base-package="com.pfxt.controller" /><mvc:annotation-driven /><mvc:resources mapping="/resources/**" location="/WEB-INF/resources/" /><!-- 对模型视图名称的解析,在请求时模型视图名称添加前后缀--><beanclass="org.springframework.web.servlet.view.InternalResourceViewResolver"><property name="viewClass"value="org.springframework.web.servlet.view.JstlView" /><property name="prefix" value="/WEB-INF/jsp/" /><property name="suffix" value=".jsp" /></bean><!-- DWR配置--><bean id="simpleUrlHandlerMapping" class="org.springframework.web.servlet.mvc.SimpleControllerHandlerAdapter" /><!-- 要求dwr在spring容器中检查拥有@RemoteProxy 和@RemoteMethod注解的类。
文件 上传 方法

文件上传方法文件上传是指将本地计算机中的文件上传到远程服务器存储的过程。
在实际应用中,文件上传的场景及要求多种多样,需要考虑安全性、速度、稳定性等因素。
本文将从文件上传的工作原理、常用的文件上传技术以及优化方法进行详细阐述。
一、文件上传的工作原理通常情况下,文件上传可以分为浏览器端和服务端两个环节。
具体操作如下:1.浏览器端用户在浏览器页面上选择一个文件上传,浏览器通过input标签构造包含文件内容的FormData对象。
FormData对象可以用来构造XMLHttpRequest对象进行AJAX传输。
2.服务端用户上传的文件最终会被存储在服务端。
服务端会从请求中获取到文件,在对文件进行处理后再保存到磁盘或其他网络存储设备上。
二、常用的文件上传技术1.表单上传表单上传是最基本的文件上传方式,通常使用form标签和input type="file"标签实现。
用户选择文件后,表单会将文件内容以二进制流的形式发送到服务端。
表单上传的优点是简单易用,缺点是不支持进度条展示,也无法进行二次开发。
2.iframe上传iframe上传是一种比较古老的文件上传方式,通常采用window.frames[name]方式进行访问。
用户选择文件后,表单会被嵌套在一个隐藏的iframe页面内,通过iframe与服务端进行交互。
iframe上传的优点是可以进行二次开发,缺点是无法显示进度条,且由于采用Iframe进行交互,存在各种兼容性问题。
3.XMLHttpRequest上传XMLHttpRequest上传是目前比较流行的一种文件上传方式,也可以称之为AJAX上传。
用户选择文件后,文件内容以二进制流的形式被发送到服务端。
由于JavaScript本身具有很强的动态性,因此XMLHttpRequest上传具有较好的兼容性和浏览器支持,也可以进行一些进度条处理、出错处理以及二次开发等。
4.WebSocket上传WebSocket上传是将WebSocket协议应用在文件上传上的一种方式。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
第一步:需要文件包,其实就是dwr 3.0中例子所需要的包,dwr.jar 、commons-fileupload-1.2.jar 、 commons-io-1.3.1.jar 。
第二步:编辑web.xml,添加dwr-invokeXml代码<servlet><display-name>DWR Sevlet</display-name><servlet-name>dwr-invoker</servlet-name><servlet-class>org.directwebremoting.servlet.DwrServlet</servlet-class><init-param><description>是否打开调试功能</description><param-name>debug</param-name><param-value>true</param-value></init-param><init-param><description>日志级别有效值为: FATAL, ERROR, WARN (the default), INFO and DEBUG.</description><param-name>logLevel</param-name><param-value>DEBUG</param-value></init-param><init-param><description>是否激活反向Ajax</description><param-name>activeReverseAjaxEnabled</param-name><param-value>true</param-value></init-param><init-param><description>在WEB启动时是否创建范围为application的creator</description><param-name>initApplicationScopeCreatorsAtStartup</param-name><param-value>true</param-value></init-param><init-param><description>在WEB启动时是否创建范围为application的creator</description><param-name>preferDataUrlSchema</param-name><param-value>false</param-value></init-param><load-on-startup>1</load-on-startup></servlet><servlet-mapping><servlet-name>dwr-invoker</servlet-name><url-pattern>/dwr/*</url-pattern></servlet-mapping><servlet><display-name>DWR Sevlet</display-name><servlet-name>dwr-invoker</servlet-name><servlet-class>org.directwebremoting.servlet.DwrServlet</servlet-class><init-param><description>是否打开调试功能</description><param-name>debug</param-name><param-value>true</param-value></init-param><init-param><description>日志级别有效值为: FATAL, ERROR, WARN (the default), INFO and DEBUG.</description><param-name>logLevel</param-name><param-value>DEBUG</param-value></init-param><init-param><description>是否激活反向Ajax</description><param-name>activeReverseAjaxEnabled</param-name><param-value>true</param-value></init-param><init-param><description>在WEB启动时是否创建范围为application的creator</description><param-name>initApplicationScopeCreatorsAtStartup</param-name><param-value>true</param-value></init-param><init-param><description>在WEB启动时是否创建范围为application的creator</description><param-name>preferDataUrlSchema</param-name><param-value>false</param-value></init-param><load-on-startup>1</load-on-startup></servlet><servlet-mapping><servlet-name>dwr-invoker</servlet-name><url-pattern>/dwr/*</url-pattern></servlet-mapping>第三步:创建上传类FileUpload.java,编辑代码,内容如下:Java代码package learn.dwr.upload_download;import java.awt.Color;import java.awt.Font;import java.awt.Graphics2D;import java.awt.geom.AffineTransform;import java.awt.image.AffineTransformOp;import java.awt.image.BufferedImage;import java.io.File;import java.io.FileOutputStream;import java.io.InputStream;import org.directwebremoting.WebContext;import org.directwebremoting.WebContextFactory;/*** title: 文件上传* @author Administrator* @时间 2009-11-22:上午11:40:22*/public class FileUpload {/*** @param uploadImage 圖片文件流* @param uploadFile 需要用简单的文本文件,如:.txt文件,不然上传会出乱码* @param color* @return*/public BufferedImage uploadFiles(BufferedImage uploadImage,String uploadFile, String color) {// uploadImage = scaleToSize(uploadImage);// uploadImage =grafitiTextOnImage(uploadImage, uploadFile, color);return uploadImage;}/*** 文件上传时使用InputStream类进行接收,在DWR官方例中是使用String类接收简单内容** @param uploadFile* @return*/public String uploadFile(InputStream uploadFile, String filename)throws Exception {WebContext webContext = WebContextFactory.get();String realtivepath = webContext.getContextPath() + "/upload/";String saveurl = webContext.getHttpServletRequest().getSession().getServletContext().getRealPath("/upload");File file = new File(saveurl + "/" + filename);// if (!file.exists()) {// file.mkdirs();// }int available = uploadFile.available();byte[] b = new byte[available];FileOutputStream foutput = new FileOutputStream(file);uploadFile.read(b);foutput.write(b);foutput.flush();foutput.close();uploadFile.close();return realtivepath + filename;}private BufferedImage scaleToSize(BufferedImage uploadImage) {AffineTransform atx = new AffineTransform();atx.scale(200d / uploadImage.getWidth(), 200d / uploadImage.getHeight());AffineTransformOp atfOp = new AffineTransformOp(atx,AffineTransformOp.TYPE_BILINEAR);uploadImage = atfOp.filter(uploadImage, null);return uploadImage;}private BufferedImage grafitiTextOnImage(BufferedImage uploadImage, String uploadFile, String color) {if (uploadFile.length() < 200) {uploadFile += uploadFile + " ";}Graphics2D g2d = uploadImage.createGraphics();for (int row = 0; row < 10; row++) {String output = "";if (uploadFile.length() > (row + 1) * 20) {output += uploadFile.substring(row * 20, (row + 1) * 20); } else {output = uploadFile.substring(row * 20);}g2d.setFont(new Font("SansSerif", Font.BOLD, 16));g2d.setColor(Color.blue);g2d.drawString(output, 5, (row + 1) * 20);}return uploadImage;}}package learn.dwr.upload_download;import java.awt.Color;import java.awt.Font;import java.awt.Graphics2D;import java.awt.geom.AffineTransform;import java.awt.image.AffineTransformOp;import java.awt.image.BufferedImage;import java.io.File;import java.io.FileOutputStream;import java.io.InputStream;import org.directwebremoting.WebContext;import org.directwebremoting.WebContextFactory;/*** title: 文件上传* @author Administrator* @时间 2009-11-22:上午11:40:22*/public class FileUpload {/*** @param uploadImage 圖片文件流* @param uploadFile 需要用简单的文本文件,如:.txt文件,不然上传会出乱码 * @param color* @return*/public BufferedImage uploadFiles(BufferedImage uploadImage,String uploadFile, String color) {// uploadImage = scaleToSize(uploadImage);// uploadImage =grafitiTextOnImage(uploadImage, uploadFile, color);return uploadImage;}/*** 文件上传时使用InputStream类进行接收,在DWR官方例中是使用String类接收简单内容** @param uploadFile* @return*/public String uploadFile(InputStream uploadFile, String filename)throws Exception {WebContext webContext = WebContextFactory.get();String realtivepath = webContext.getContextPath() + "/upload/";String saveurl = webContext.getHttpServletRequest().getSession().getServletContext().getRealPath("/upload");File file = new File(saveurl + "/" + filename);// if (!file.exists()) {// file.mkdirs();// }int available = uploadFile.available();byte[] b = new byte[available];FileOutputStream foutput = new FileOutputStream(file);uploadFile.read(b);foutput.write(b);foutput.flush();foutput.close();uploadFile.close();return realtivepath + filename;}private BufferedImage scaleToSize(BufferedImage uploadImage) {AffineTransform atx = new AffineTransform();atx.scale(200d / uploadImage.getWidth(), 200d / uploadImage.getHeight());AffineTransformOp atfOp = new AffineTransformOp(atx,AffineTransformOp.TYPE_BILINEAR);uploadImage = atfOp.filter(uploadImage, null);return uploadImage;}private BufferedImage grafitiTextOnImage(BufferedImage uploadImage, String uploadFile, String color) {if (uploadFile.length() < 200) {uploadFile += uploadFile + " ";}Graphics2D g2d = uploadImage.createGraphics();for (int row = 0; row < 10; row++) {String output = "";if (uploadFile.length() > (row + 1) * 20) {output += uploadFile.substring(row * 20, (row + 1) * 20);} else {output = uploadFile.substring(row * 20);}g2d.setFont(new Font("SansSerif", Font.BOLD, 16));g2d.setColor(Color.blue);g2d.drawString(output, 5, (row + 1) * 20);}return uploadImage;}}第四步:添加到dwr.xmlJava代码<create creator="new"><param name="class" value="learn.dwr.upload_download.FileUpload" /></create><create creator="new"><param name="class" value="learn.dwr.upload_download.FileUpload" /> </create>第五步:添加前台html代码Html代码<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" " /TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=utf-8" /><title>二进制文件处理,文件上传</title><script type='text/javascript' src='/learnajax/dwr/interface/FileUpload.js'></scr ipt><script type='text/javascript' src='/learnajax/dwr/engine.js'></script><script type='text/javascript' src='/learnajax/dwr/util.js'></script><script type='text/javascript' >function uploadFiles(){var uploadImage = dwr.util.getValue("uploadImage");FileUpload.uploadFiles(uploadImage, "", "", function(imageURL) {alert(imageURL);dwr.util.setValue('image', imageURL);});}function uploadFile(){var uploadFile = dwr.util.getValue("uploadFile");//var uploadFile =document.getElementById("uploadFile").value;var uploadFileuploadFile_temp = uploadFile.value.replace("\\","/");var filenames = uploadFile.value.split("/");var filename = filenames[filenames.length-1];//var eextension = e[e.length-1];FileUpload.uploadFile(uploadFile,filename,function(data){var file_a= document.getElementById("file_a");file_a.href=data;file_a.innerHTML=data;document.getElementById("filediv").style.display="";});}</script></head><body><table border="1" cellpadding="3" width="50%"><tr><td>Image</td><td><input type="file" id="uploadImage" /></td><td><input type="button" onclick="uploadFiles()" value="upload"/><div id= "image.container"> </div></td></tr><tr><td>File</td><td><input type="file" id="uploadFile" /></td><td><input type="button" onclick="uploadFile()" value="upload"/><div id=" file.container"> </div></td></tr><tr><td colspan="3"></td></tr></table><img id="image" src="javascript:void(0);"/><div id="filediv" style="display:none;"><a href="" id="file_a">上传的文件</a></div></body></html><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=utf-8" /><title>二进制文件处理,文件上传</title><script type='text/javascript' src='/learnajax/dwr/interface/FileUpload.js'></script><script type='text/javascript' src='/learnajax/dwr/engine.js'></script><script type='text/javascript' src='/learnajax/dwr/util.js'></script><script type='text/javascript' >function uploadFiles(){var uploadImage = dwr.util.getValue("uploadImage");FileUpload.uploadFiles(uploadImage, "", "", function(imageURL) { alert(imageURL);dwr.util.setValue('image', imageURL);});}function uploadFile(){var uploadFile = dwr.util.getValue("uploadFile");//var uploadFile =document.getElementById("uploadFile").value;var uploadFile_temp = uploadFile.value.replace("\\","/");var filenames = uploadFile.value.split("/");var filename = filenames[filenames.length-1];//var extension = e[e.length-1];FileUpload.uploadFile(uploadFile,filename,function(data){var file_a= document.getElementById("file_a");file_a.href=data;file_a.innerHTML=data;document.getElementById("filediv").style.display="";});}</script></head><body><table border="1" cellpadding="3" width="50%"><tr><td>Image</td><td><input type="file" id="uploadImage" /></td><td><input type="button" onclick="uploadFiles()" value="upload"/><div id="image.container"> </div></td></tr><tr><td>File</td><td><input type="file" id="uploadFile" /></td><td><input type="button" onclick="uploadFile()" value="upload"/><div id="file.container"> </div></td></tr><tr><td colspan="3"></td></tr></table><img id="image" src="javascript:void(0);"/><div id="filediv" style="display:none;"><a href="" id="file_a">上传的文件</a></div></body></html>添加进度条么,就需要用reverse ajax 进行配合使用了。