我注意到新的 XMLHttpRequest 对象支持 firefox 中的“onprogress”事件。是否可以利用部分新的 HTML5 文件 api 来获取上传进度条,而无需任何服务器端修改?
最佳答案
我原则上相信是的,虽然我还没有尝试过。
问题是 XMLHttpRequest#send()
接受一个 Unicode 字符串并将其编码为 UTF-8。它不会让您能够发送纯二进制文件,并且大多数二进制文件(如图像)不会碰巧是有效的 UTF-8 序列。
所以您可能会使用 FileAPI 规范所称的“二进制字符串”(字节被视为 ISO-8859-1,因此每个 charCodeAt
对应一个字节),重新编码为 UTF- 8.这最终会比普通文件上传大 50% 左右。为了获取进度报告而上传速度较慢是否值得?
(上帝啊,要是浏览器有更好的 UI 来显示上传过程就好了,就不需要没完没了的脚本/Flash/Java/ActiveX 废话了。拜托,浏览器 vendor ,这是一个很好的重要信息带有进度条的弹出窗口真的要求太多了吗?)
关于javascript - HTML5 文件上传进度 - 仅限客户端,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3232843/