【问题标题】:How to create a file uploader with a progress bar?如何创建带有进度条的文件上传器?
【发布时间】:2011-06-04 18:40:06
【问题描述】:

简而言之,这就是我想要的:

  • 一个基于 PHP/Javascript/AJAX 的文件上传器,带有一个进度条,显示百分比(例如:52%)和<div> 随着上传的进行而宽度增加。

长篇大论:

我想要一个用 PHP 和 Javascript(不是 jQuery)编写的解决方案,我自己尝试过,但在服务器端我无法获取上传文件的文件大小,因此无法计算剩余百分比。

也许有一种方法可以正常进行,但我没有找到任何明确的方法。我发现很多 PHP 补丁都不起作用 :\ 。

最后我尝试了使用 Perl 的 Uber Uploader,我安装正确,但是当我尝试上传文件时,进度条没有显示,没有错误只是不起作用:(。

但是我不太喜欢使用这样的解决方案,因为即使它有效也很麻烦,如果可能的话,我喜欢编写自己的代码,但我还没有找到任何解决方案。

还有像 pixelineswfupload 这样的 flash 上传器,但正如我所说,我想使用 PHP 和 Javascript。

【问题讨论】:

  • 请指出为什么许多已经存在的关于该主题的 Q&A 不能帮助您解决该任务。并且请参考您已经检查过的问题,所以我们知道您在提问之前做了功课。
  • 在旁注中,PHP.next 将有native upload progress bar support。已经有PECL extension available了。

标签: php javascript file-upload progress-bar


【解决方案1】:

您应该使用UploadProgress 扩展,以及根据回复每x 毫秒更新进度条的jQuery AJAX 请求。

这是扩展程序的链接:http://pecl.php.net/package/uploadprogress/

或者,也可以使用APC 来完成。

【讨论】:

  • 嗨!谢谢你的回答,我之前都试过了,但我不知道如何让它们工作,因为uploadprogress当我打开示例文件时告诉我The uploadprogress extension is not installed.我应该如何安装它?和APC要求下载文件中未包含的文件:/
  • 如何安装扩展请看这个页面:php.net/manual/en/install.pecl.php
【解决方案2】:

当您访问文件的目录或文件夹时可以获得文件大小,这可能会单独请求或在打开文件时根据您最终使用的语言来请求。进度条类型是受法律保护的项目,它们具有以不同方式直观地指示进度的规则,其中一些可从主要供应商处获得许可,但也有一些免费软件或共享软件版本可以在允许的情况下在兼容的操作系统上运行。

【讨论】:

  • 有时在计算机显示屏上绘制条形或块扩展的方法不适用于其他操作系统,这就是它们似乎没有显示任何内容的原因
【解决方案3】:

PHP 在将控制权返回给页面之前会完全处理文件上传。

这会产生问题。

我所知道的唯一真正的 PHP 解决方案是使用 APC,它为 PHP 添加了一个钩子,你 can access via a second PHP script over AJAX

【讨论】:

    猜你喜欢
    • 2014-01-20
    • 1970-01-01
    • 1970-01-01
    • 2011-12-09
    • 2013-05-21
    • 2011-09-11
    • 1970-01-01
    • 2011-08-19
    • 2011-11-06
    相关资源
    最近更新 更多