PHP-向客户端公开自己的大小(以便客户端知道下载了多少)
在Delphi桌面客户端的POST请求调用.sql文件后,我的PHP脚本将输出该文件的内容 以下是正在发生的事情:PHP-向客户端公开自己的大小(以便客户端知道下载了多少),php,sql,delphi,dynamic,size,Php,Sql,Delphi,Dynamic,Size,在Delphi桌面客户端的POST请求调用.sql文件后,我的PHP脚本将输出该文件的内容 以下是正在发生的事情: 我的桌面客户端向我的PHP脚本发送POST请求 然后脚本调用mysqldump并生成一个文件-xdb_backup.sql 然后脚本包括“xdb_backup.sql”将打印并返回到桌面客户端,然后删除SQL文件 问题是,SQL文件的大小可能不同(为了测试,我生成了一个6MB的文件)。我希望我的桌面客户端能够显示进度,但是PHP脚本没有显示它的大小,因此我没有要分配的Progres
mysqldump
并生成一个文件-xdb_backup.sql
包括“xdb_backup.sql”
将打印并返回到桌面客户端,然后删除SQL文件Progressbar.Max
值
在整个过程结束之前,如何让我的PHP脚本让客户端知道它有多大
注意:下载SQL文件不是一个选项,因为脚本必须销毁它。:) 你会的
$fsize = filesize($file_path);
其中$file_path将是生成的文件xdb_backup.sql的路径
获取服务器中的文件大小并返回附加了以下行的标题
header("Content-Length: " . $fsize);
请看一看下载php脚本的说明。您必须使用
header
函数发送内容长度的头。大概是这样的:
header('Content-Length:'.filesize('yourfile.sql')代码>
您可能希望使用readfile
而不是include发送文件 您可以使用xdb_backup.sql的大小设置内容长度标题我看到的唯一方法是根据数据字段的数量和大小进行粗略的近似。但是很有意思+1@Obto谢谢你的+1:)-结果是答案很简单那么,客户机在开始处理sql文件之前会知道大小吗?