英文原文链接:http://today.java.net/pub/a/today/2006/02/09/file-uploads-with-ajax-and-jsf.html
Translated by amplifier
基于浏览器的文件上传,特别是那些通过调用HTML标签<input type="file">来实现的文件上传,总是有很大的缺陷。大家都知道,上传一个大于10MB的文件会导致非常糟糕的用户体验。当用户提交表单上传文件后,浏览器在把文件上传到服务器的过程中就会表现得像失去响应一样。当这个过程在后台进行中的时候,很多不耐烦的用户就会以为服务器挂掉了,于是就尝试重新提交表单,这样一来就更糟糕了。
为了使文件上传的用户界面更友好,很多网站采用显示不确定的进度动画(例如一个翻转的图标)来提示用户已提交文件。虽然这种技术会让用户觉得好受一点,但它只提供了极少与文件上传状态相关的信息。另外一种尝试是通过实现一个applet来把文件上传到FTP服务器上,这种方法的缺点是它只对有java的浏览器可用。
在本文,我们将会使用一种新的方法,通过实现一个使用AJAX技术的组件来达到目的,该组件不仅仅把文件上传到服务器,还“实时”监控文件上传的实际进度。该组件的四个状态如图1,2,3,4所示:
图1. 阶段1:选择要上传的文件
图2.阶段2:上传中
图3.阶段3:上传完毕
图4.文件上传概要
(未完待续)