Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/281.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PHP上载进度会话_Php_Progress Bar - Fatal编程技术网

PHP上载进度会话

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

我试图用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="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;
});