0

我设计了一个有效的 PHP 上传脚本,用于通过 POST 命令和 FTP 将文件存放在服务器上。它工作得很好——唯一的问题是我花了很长时间弄清楚如何在文件上传时显示“请稍候”消息。我尝试在脚本上方添加 HTML,但仅在文件已上传(或发生错误)后才会显示文本。唯一可行的(某种)方法是使用 onClick html 表单设置添加一个 Javascript 弹出窗口……但这真的不理想,我担心那些使用该脚本的人可能会被弹出窗口弄糊涂-在 POST/FTP 进程仍在进行时,向上并尝试离开主窗口。

我对 PHP 比较陌生,我觉得有一个明显的解决方案......不幸的是,到目前为止,我似乎找不到一个。有任何想法吗?请原谅我的无知!:)

谢谢-

4

3 回答 3

2

您需要在客户端执行此操作。在上传完整文件之前,不会调用 PHP 解释器。因此,如果您有一个 2mb 的文件,您的脚本在通过请求完全发送并保存到临时文件之前不会启动。

我建议使用一些 javascript 来监视您的表单提交以显示您的消息。像这样使用 jquery 的东西:

$('form').on('submit', function() {
  $('#loading').show();
});
于 2012-05-23T15:40:11.907 回答
1

如果您使用的是 PHP 5.4,您可以尝试添加新的文件上传进度。这是一篇很好的文章:

http://chemicaloliver.net/programming/php-5-4-file-upload-progress-and-html5-progress-bars/

于 2012-05-23T15:45:07.950 回答
0

对于 PHP 5.4,现在内置了会话上传进度功能。它最初是在 php 5.3 中修补的。这是它的手册http://php.net/manual/en/session.upload-progress.php

当 session.upload_progress.enabled 为真(在 PHP 5.4 和可能更高版本中默认为真)并且在上传期间发送 $_POST[session.upload_progress.name] 时,有关文件传输的信息在 $_SESSION 超全局中可用大批。

这是一个很好的教程,它使用 $_SESSION 超全局和 javascript 来呈现上传文件的进度条:http: //phpmaster.com/tracking-upload-progress-with-php-and-javascript/

于 2012-05-23T15:45:01.857 回答