如何显示上传的当前进度(jquery + post + php)?

时间:2012-01-14 23:19:37

标签: jquery image post upload progress

我有问题。我正在尝试通过jquery&上传图片post方法+ PHP到我的服务器。 下面的代码片段:

$.post("http://www.xyz.com/upload.php", { image: ImageObject}, function(data) {
  //code                       
});

我想显示按文字上传的当前进度(自动更新),如下所示:

<div>Current progress: <div id="progress">[dynamic number]</div>

任何想法我该怎么做?我不想使用flash - 只有php / jquery。

1 个答案:

答案 0 :(得分:1)

遗憾的是,由于客户端javascript无法访问网页之外的客户端信息,因此您不能仅通过jQuery本地执行此操作,但执行有几个选项:

  1. 使用可访问客户端的Flash或Java插件,如this one
  2. 使用轮询服务器的系统来请求当前文件的进度。我对PHP不是很熟悉,但在.NET中,负责接收上传文件的类将告诉我到目前为止上传了多少字节。我会设置一个客户端计时器,以给定的时间间隔(例如1秒)通过ajax请求该信息,然后使用返回的信息来操作进度条。
  3. 使用HTML5网络套接字推送从服务器上传进度 客户端。虽然它是一个非常简洁的选择,但它是最不重要的 最喜欢的,因为它更难实现,并且不会广泛享受 浏览器支持。
  4. 祝你好运!