【问题标题】:PHP session upload progress and simultaneous uploadsPHP会话上传进度和同时上传
【发布时间】:2013-09-20 10:04:11
【问题描述】:

PHP documentation 没有解释在同一会话中同时上传两个文件时会发生什么(两个上传在浏览器的两个选项卡中运行)。

有什么方法可以跟踪两次上传的进度吗? 当第二个开始时,第一个上传状态会丢失吗?

谢谢!

【问题讨论】:

  • 您想在同一个选项卡上跟踪两者的进度,还是在上传的选项卡中跟踪的每个文件中跟踪两者的进度?
  • 我想提出一些东西,让我可以跟踪相应选项卡中的每个文件上传。
  • 那么...您要在客户端跟踪上传进度吗?
  • 我需要向用户显示上传进度,如果用户在两个不同的选项卡中上传两个不同的文件,我希望能够在各自的选项卡中显示每个文件的进度。我想知道php如何使用他的会话上传进度功能来处理这种情况。

标签: php session file-upload progress simultaneous


【解决方案1】:

是的,可以使用 PHP 的会话上传进度功能在不同选项卡中监控两个不同上传的状态。您需要做的就是通过更改隐藏的上传进度名称字段的value="" 参数使两个表单上的上传进度名称不同。

例如,标签 1 的上传表单可能如下所示:

<form action="upload.php" method="POST" enctype="multipart/form-data">

<input type="hidden" name="<?php echo ini_get("session.upload_progress.name"); ?>" value="tab1">
<!-- notice the value="tab1" above -->

<input type="hidden" name="MAX_FILE_SIZE" value="1000000">
<input type="file" name="myUploadName" />
<input type="submit" />
</form>

然后,选项卡 2 的上传表单可能如下所示:

<form action="upload.php" method="POST" enctype="multipart/form-data">

<input type="hidden" name="<?php echo ini_get("session.upload_progress.name"); ?>" value="tab2">
<!-- notice the value="tab2" above -->

<input type="hidden" name="MAX_FILE_SIZE" value="1000000">
<input type="file" name="myUploadName" />
<input type="submit" />
</form>

现在您已经创建了两个不同的上传进度会话,您可以在 PHP 端获取进度数据,如下所示:

$_SESSION['upload_progress_tab1'] // Progress data for tab 1
$_SESSION['upload_progress_tab2'] // Progress data for tab 2

【讨论】:

    【解决方案2】:

    这个例子对你有用:

    http://www.johnboy.com/php-upload-progress-bar/
    

    您需要一些客户端 (JS) 代码和一些 PHP

    【讨论】:

    • 我很清楚有不同的方法可以实现我所问的,但问题不是“有没有其他方法可以做到这一点?”......更像是“如何这种方法能处理这种情况吗?”
    猜你喜欢
    • 1970-01-01
    • 2013-01-04
    • 2015-05-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-11-20
    相关资源
    最近更新 更多