我想用PHP创建一个上传进度条。 我看到了PHP 5.4的新功能:upload progress session。PHP上传进度会话
这是我的HTML代码:
<form id="upload" action="ajax/progress.php" method="POST" enctype="multipart/form-data">
<input type="hidden" name="<?php echo ini_get("session.upload_progress.name"); ?>" value="dupload" />
<input id="file1" type="file" name="file1" />
<input class="btn primary" type="submit" value="Upload" />
</form>
这是progress.php:
<?php
session_start();
$key = ini_get("session.upload_progress.prefix") . 'dupload';
if (!empty($_SESSION[$key])){
$current = $_SESSION[$key]["bytes_processed"];
$total = $_SESSION[$key]["content_length"];
echo $current < $total ? ceil($current/$total * 100) : 100;
}
else {
var_dump($_SESSION);
var_dump($_FILES);
}
AJAX:
$('#upload').submit(function() {
interval_id = setInterval(function() {
$.ajax({
url: "ajax/progress.php6",
type: "POST",
success: function (data) {
console.log(data);
}
});
}, 200);
return false;
});
所有INI设置是正确的。 (会话启用,名称和前缀是正确的)
我总是得到一个空的会话数组。怎么了?
谢谢!
您的阅读不写入会话...它怎么不会是空的 – rlemon 2012-07-13 19:17:31
你是什么意思?文档中没有什么说我应该手动写入会话,它应该自动写入它。 – AdamGold 2012-07-13 20:52:16
如果你的文件真的命名为“progress.php6”? – 2012-07-13 21:02:05