我见过所有的上传进度条插件、小部件等——它们都很糟糕。它们要么体积太大,有太多无用的代码,要么不起作用。
我想知道在哪里可以阅读如何显示简单的上传进度指示器。大多数浏览器下面都有一个状态进度条,但在与客户打交道时仅使用它不太专业。
浏览器是如何做到的呢?我想知道浏览器如何工作以指示上传状态的内部结构,以便也许我可以使用 PHP 和 jquery 制作一些东西。
Thanks.
既然你想使用 PHP,我会从上传进度扩展(默认情况下,在上传完成之前,PHP 不会向您提供任何数据;此扩展提供了此类服务器端功能)。请注意,它需要 PHP 5.2+并且可以对配置选项很挑剔。另见其评论和演示 and 故障排除提示)。 PHP 文档中提供了简短概述comments.
使用该扩展程序,您可以获得一些上传统计信息;然后你可以通过 AJAX 轮询服务器并更新某种进度条。
更具体一点:
- 获取表单的唯一标识符,并将其包含在隐藏字段中
- 上传应在 IFRAME 中运行 - 某些浏览器不允许 DOM 更新到运行上传的同一页面
- 通过 AJAX 轮询服务器(使用标识符来指定您感兴趣的上传)并解析结果(IIRC,您将得到类似“bytes_uploaded => 123,content-length=> 1000”的内容)
- 更新你的进度条(你显示它的方式取决于你,我使用“x%完成”加上图形栏)
- 表单上传后重定向整个页面 OK
(哦,顺便说一句,检查 PHP 的 upload_max_filesize 和 post_max_size 设置,因为两者都限制最大上传大小)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)