我有一个php脚本,可以通过FTP将大型媒体文件推送到远程服务器。这很顺利。我想对此进行增强,并将其报告给启动传输的ajax客户端。基本上,每次转移后都会报告下面的内容:
1/12:文件xbacd.dat已成功复制到/ dir1 / sub2 / - 2.2Mb
2/12:在/ var / www / files中找不到文件impact_analy.ppt - 正在恢复。
3/12:文件abc_consult.doc已成功复制到/ dir1 / sub3 / - 8.2Mb
另一方面,Ajax处理程序应该在div中显示它,当它到达时。我对以下代码没有运气,因此切换到AJAX。
ob_start();
require_once 'init.php';
while(files){
// Transfer code
// status
echo "$idx/$count: File $f has been copied successfully to $tar_dir - $s";
ob_flush;
flush;
}
答案 0 :(得分:1)
我会告诉你我曾经做过什么,我不确定它是最好的解决方案,但它有效。 您应该有一个iFrame并将表单的目标设置为iFrame
<script>
function showMsg(msg){
alert(msg);
}
</script>
<form action="theCommandHandler.php" method="post" target="myIframe">
<input type="submit" value="Do A Command" />
</form>
<iframe name="myIframe"></iframe>
一旦发布到theCommandHandler.php,你的php脚本中应该有这样一行代码:
echo "<script>parent.showMsg('$idx/$count: File $f has been copied successfully to $tar_dir - $s');</script>";
您可以将任意数量的消息发送回客户端,他们将在父文档上调用showMsg函数。