PHP上载进度会话
我试图用PHP创建一个上传进度条。 我看到了PHP5.4的新特性: 这是我的HTML代码:PHP上载进度会话,php,progress-bar,Php,Progress Bar,我试图用PHP创建一个上传进度条。 我看到了PHP5.4的新特性: 这是我的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="duplo
<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>
所有ini设置都正确。(会话已启用,名称和前缀正确)
我总是得到一个空的会话数组。怎么了
谢谢 在一个POST请求中是不可能的,您可以执行AJAX请求,并在上传文件时读取会话。上传文件后,删除了
会话.upload\u progress.name
键,因此得到的是一个空数组。无法对其进行排序,因此我使用了XMLHTTPREQUEST“progress”操作,效果很好。
谢谢 我认为这是因为您的表单没有提交,因为您在
$('#upload').submit(function () {
interval_id = setInterval(function () {
$.ajax({
url: "ajax/progress.php6",
type: "POST",
success: function (data) {
console.log(data);
}
});
}, 200);
return false;
});
它初始化interval,因此页面总是返回null,因为没有上传任何内容。尝试使用,它会向会话提交表单您的阅读而不是写作。。。它怎么会不是空的你是什么意思?文档中没有说我应该手动写入会话,它应该自动写入。如果您的文件名为
“progress.php6”
?是的,如果我想使用PHP5.4,我的服务器中需要php6扩展名。您是通过FastCGI运行PHP吗?我还尝试在表单提交后每隔一秒钟设置一个AJAX请求,以及空数组。你使用什么服务器?如果nginx在php的这个新特性上存在一些问题,我必须使用iframe+apache来处理进度条:)我认为,不应该接受这个;)。也许这是一个解决方案,但绝对不是答案。。。
$('#upload').submit(function () {
interval_id = setInterval(function () {
$.ajax({
url: "ajax/progress.php6",
type: "POST",
success: function (data) {
console.log(data);
}
});
}, 200);
return false;
});
$('#upload').submit(function () {
interval_id = setInterval(function () {
$.ajax({
url: "ajax/progress.php6",
type: "POST",
success: function (data) {
console.log(data);
}
});
}, 200);
return false;
});