1

我有一个表格:

<form onsubmit="upload_start()" target="upload_iframe" action="../blocks/file_tools/upload.php" enctype="multipart/form-data" method="post">
        <input type="hidden" name="APC_UPLOAD_PROGRESS" value="<?php echo md5(rand().time()); ?>" />
        <input id="upload_files" name="upload_files[]" type="file" multiple accept="image/*" />
        <button id="addFilesButton" type="button" class="button button_gray" title="Добавить файлы"> + Добавить файл</button>
        <button class="button button_green" type="submit" title="Загрузить выбранный файлы">Загрузить</button>        
    </form>

在这个文件中,我读取了上传状态:

<?php
session_start();
$id = isset($_POST['id']) ? $_POST['id'] : 0;
$status =apc_fetch("upload_".$id);
header('Content-type: application/json');
print_r(apc_fetch("upload_".$id));
echo json_encode($status);
?>

我通过ajax发送

//Получаем статус загрузки фалов на сервер.
function upload_status()
{
    var id = $("input[name='APC_UPLOAD_PROGRESS']").val();
    $.ajax(
    {
    url: '/blocks/file_tools/upload_status.php',    type: 'POST', dataType: 'HTML', charset: 'utf-8', async:false,
    data: ({id:id}),
    success: function(data) 
    {
          // some code
    }
   })   
   setTimeout(upload_status, 2000);
}

如果我上传一个文件,则代码可以正常工作如果您正在加载多个文件,APC 会返回仅加载数组upload_files[ ]中的最后一个文件的状态。如何获取数组upload_files[]中每个文件的上传状态?

4

1 回答 1

1

请参阅http://php.net/manual/en/apc.configuration.php#ini.apc.rfc1867

请注意,此时文件上传跟踪不是线程安全的,因此在前一个仍在进行时发生的新上传将禁用对前一个的跟踪。

这基本上意味着一次只能显示一个文件的上传进度。

如果您需要它,最好通过网络服务器实现:

于 2014-01-08T23:52:19.060 回答