PHP创建文件的进度条(Creating a file progress bar in PHP)

2019-08-20 09:10发布

有谁知道的任何方法来创建一个PHP文件上传进度条? 我经常听说,这是不可能的。

我有一个想法,但不知道它是否会工作:有一个正常的文件上传,而是提交给一个iframe。 当这个被提交,存储在会话中的文件信息(大小和临时位置)。 同时,每说10秒检查与存储在会话大小文件的大小开始AJAX调用。 这将大小恢复到AJAX,然后一个进度条会是大小,也许显示上传大小给用户。

思考?

Answer 1:

您可以尝试YUI或原型或JQuery的



Answer 2:

你几乎想出如何做到这一点。 主要的问题是,你通常要等到它完成上传没有进入上传文件的大小。

这有解决方法:启用APC,如果你有一个名为“APC_UPLOAD_PROGRESS”字段中访问此信息,并使用apc_fetch()用于检索与状态的缓存条目。

还有一个插件叫做上传进度,但它没有很好的记录,并在Windows上无法正常工作(最后我检查反正)。

另一种方法是使用Flash做这件事。 看到这样的脚本FancyUpload 。

APC出现之前,我不得不写在C CGI脚本,写信息到一个文本文件中。 APC似乎是一个更好的方法来做到这一点现在虽然。

希望这可以帮助。



Answer 3:

到目前为止,这样做的最常见的方式是SWFUpload的: http://www.swfupload.org/

然而,也可以用纯PHP,只是非常困难,非常实验。 我去看看我能找到的链接。

编辑:据对php.net意见,为5.2有一个钩来处理上传进度。 http://us.php.net/features.file-upload#71564

更多的解释:

  • http://www.dinke.net/blog/2006/11/04/php-52-upload-progress-meter/en/
  • http://blog.liip.ch/archive/2006/09/10/upload-progress-meter-extension-for-php-5-2.html

拉斯穆斯实施例:

  • http://progphp.com/progress.phps


Answer 4:

从PHP 5.4是在会话扩展: http://php.net//manual/pl/session.upload-progress.php



Answer 5:

在纯PHP,你是正确的:这是不可能的。

如果Ajax的IFY这一点,那么你可以做你描述。 我见过的唯一进展米,在Javascript或Flash,虽然我想象的Silverlight可以做到这一点也。



Answer 6:

“老同学”,而是一个PHP + Perl的技术: http://www.raditha.com/php/progress.php



Answer 7:

在我看来,最好的/最简单的解决方案是建立一个小型闪存部件,它由一个“上传”按钮和进度条。 闪存给你多少数据到目前为止已经上传的非常详细的反馈,你可以建立基于这样一个漂亮的进度条。 不需要服务器的查询效率低下,实际上并不需要在所有的服务器代码进行任何更改。 谷歌为“Flash上​​传”,你会发现很多人已经写了这些小部件,并乐意卖给你一个降压。



Answer 8:

我建议你看的SWFUpload来完成你想要的东西。 这是相当灵活的,并支持文件的排队,所以你甚至可以处理多文件上传。



Answer 9:

你一定会想要去digitgerald的FancyUpload 。 这是Mootools的&swfuplaod为主,它拥有一个不错的队列statusses,进步,ETA等。这真是我见过上传文件最光滑的方法。 对于香港专业教育学院用它来让我个人用的情况下,客户选择1.2 GB的PDF文件,并将它们上传。 较新的获得改名和自动版本,同样是跳过,等等。



文章来源: Creating a file progress bar in PHP