atitit. 文件上传带进度条 atiUP 设计 java c# php
atitit. 文件上传带进度条 atiUP 设计 java c# php
1. 设计要求
带进度条
完毕提示动画效果..
2. 原理and 架构
假设须要显示运行进度条,实时显示文件上传进度
须要使用Ajaxj技术..up到个在的iframe黑头..
工作原理
事实上际就是在处理上传文件的同一时候,将上传进度的信息比如文件总长吨,已经上传多少。传输速率写入session中,client游览器
利用Ajax技术再新开一个独立的进程从session中获取上传进度信息,并实时显示,Ajax技术可以 不刷新页面获取server数据。session
可看做是server内存,能够用于存放少量的客户信息。
上传监听器
commons-fileupload版1.2支持上传监听,仅仅须要实现一个监听器,并把它加入到上传组件上就可以。监听器须要实现它的progresslistener
作者:: 老哇的爪子 Attilax 艾龙, EMAIL:1466519819@qq.com
转载请注明来源: http://blog.csdn.net/attilax
3. ui
prj.wechatAdm4prop
house_list.jsp
<iframe id="upIfrm" src="up.jsp?
callx=callO7" marginwidth="0" marginheight="0" scrolling="no" frameborder="0" style="width:100%; height:60px"></iframe>
function callO7(path)
{
//alert(path);
$("#filex").val(path);
// okTips();
}
4. spring mvc
web.xml
<!-- spring mvc start p3h -->
<!-- o7h ati -->
<servlet>
<servlet-name>spring</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<init-param>
<param-name>contextConfigLocation</param-name>
<param-value>/WEB-INF/springMVC.xml</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
<!-- ///o7h -->
<servlet-mapping>
<servlet-name>spring</servlet-name>
<!-- 这里在配成spring,下边也要写一个名为spring-servlet.xml的文件,主要用来配置它的controller -->
<url-pattern>/spr/*</url-pattern>
</servlet-mapping>
<!-- spring mvc start p3h end -->
5. springMVC.xml
<mvc:annotation-driven />
<context:annotation-config />
<context:component-scan base-package="JUnit4,com.im,com.im.**,com.attilax.up.**,com.focusx.dictionary.action.**"/>
<bean class="org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter" />
6. struts extand url
<constant name="struts.action.excludePattern" value="/dwr/.*,/dwr/test/.*,/spr/.*,/eqMntRun.jsp,/vod/eqMntRun.jsp,/comm/.*,/house/.*"></constant>
7. behide code
/wechatAdmin4propt/src/com/attilax/up/FileUploadController.java
8. 简化设计
up_smp.jsp
參考
atitit.文件上传带进度条的实现原理and组件选型and最佳实践总结O7