我有一个upload.php页面,用户上传文件,文件转换为HTML文件并存储在服务器上。转换是通过shell_exec()命令执行的。要显示转换进度条,我解析stderr并将进度值传递给javascript函数:
echo "<script>progress(".$base.",".$prog_val.") </script>";
这将javascript函数调用为:
function progress(base, value) //assigns value and max to progress bar in html
{
document.getElementById('prog').value = value;
document.getElementById('prog').max = base; document.getElementById('progress_indicator').innerHTML = Math.ceil(value)+"/"+base+" pages";
}
要显示我的进度条:
<progress id = "prog"> </progress> <div id = "progress_indicator"></div>
所有这些都在同一个upload.php页面上。因此,当进程运行时,进度会成功更新,但由于转换在同一个php页面上执行,因此用户无法使用该页面。我想在后台的另一个php页面上运行转换php部分,并在我的upload.php页面上回显“progress(”。$ base。“,”。$ prog_val。“)”。因此,转换在后台运行,而不会在那段时间内阻止upload.php页面。我觉得这可以通过ajax或事件处理程序来实现。
有人可以告诉我这是如何实现的吗?
答案 0 :(得分:0)
在upload.php页面中使用具有您的操作的外部页面制作jquery ajax,然后将返回的ajax值分配到upload.php页面中的固定div中。