我有一张表格:
<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 [] 中每个文件的上传状态?
答案 0 :(得分:1)
请参阅http://php.net/manual/en/apc.configuration.php#ini.apc.rfc1867:
请注意,此时文件上传跟踪不是线程安全的,所以 在上一个仍在进行时发生的新上传将会发生 禁用之前的跟踪。
这基本上意味着一次只能为一个文件显示上传进度。
如果您需要它,最好通过网络服务器实施: