最近,在自己的三-丰-云-免-费-主-机上部署了一个web在线图片上传的应用,用了好几个前端 的上传组件,都不理想,有鉴于目前支持HTML5的浏览器已经是主流,果断抛弃IE6这个老古董,使用HTML5 的文件上传功能。Html5 解决了上传文件的同时显示文件上传进度的老问题。现在大部分的网站用Flash去实现这一功能,还有一些网站继续采用Html
使用Html5 上传文件XMLHttpRequest 在Html5 规范中已经有全新的变化,规定了XMLHttpRequest Level 2规范(目前最新版本)包含下列新的特性:
在这篇文章中我们将能够更清楚的看到#1和#2两个特性。通常,上传文件用XMLHttpRequest并且提供上传进度信息给最终的用户,需要注意的是这种方式解决了不需要服务器端做任何改变,至少是目前处理multipart/form-data协议。所以服务器端的处理逻辑保留不变,这使得开发者适应这种技术相当容易。
注意:上面的图片中,信息提示区域是提供给用户的:
Html5 Progress Event对于Html5 Progress Events规范,Html5 Progess Events提供了下列与本次讨论相关的信息
total - 总的字节数loaded - 到目前为止上传的字节数lengthComputable - 可计算的已上传字节请注意到我们需要用两个信息去计算要显示给用户的其他所有信息。要计算出来其他的信息通过上面我们得到信息是相当容易的,但是那需要一些额外的代码并且创建一个定时器。
Html5 Progress Event 应该是什么考虑到有一部分人想更好的提供给用户所有的信息,所以Html5 Progress Event应该更好的满足需要,因为它给浏览器供应商提供这些额外信息是相当简单的,所以建议progress event应该修改成如下:
total - 总的字节数loaded - 到目前为止上传的字节数lengthComputable - 可计算的已上传字节transferSpeed long类型timeRemaining JavaScript 日期对象Html5 上传 用XMLHttpRequest浏览器支持情况支持这一特性的浏览器最低版本
Firefox 4.0 beta 6Chrome 6Safari 5.02IE 9 Beta and Opera 10.62 不支持这一特性
另外有需要云服务器可以了解下创新互联scvps.cn,海内外云服务器15元起步,三天无理由+7*72小时售后在线,公司持有idc许可证,提供“云服务器、裸金属服务器、高防服务器、香港服务器、美国服务器、虚拟主机、免备案服务器”等云主机租用服务以及企业上云的综合解决方案,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。