PHP会话上传进度和同步上传

时间:2013-09-20 10:04:12

标签: php session file-upload progress simultaneous

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

有没有办法跟踪上传的进度? 当第二个上传状态开始时,第一个上传状态是否会丢失?

谢谢!

2 个答案:

答案 0 :(得分: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

答案 1 :(得分:0)

此示例可能对您有用:

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

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