PHP - 将自己的大小暴露给客户端(因此客户端知道它下载了多少)

Jef*_*eff 6 php sql delphi size dynamic

我的PHP脚本在从我的Delphi桌面客户端发出POST请求调用之后输出.sql文件的内容.

以下是发生的事情:

  1. 我的桌面客户端向我的PHP脚本发送POST请求.
  2. 然后脚本调用mysqldump并生成一个文件 -xdb_backup.sql
  3. 然后脚本include "xdb_backup.sql";将打印并将其返回到桌面客户端,然后删除SQL文件.

问题是,SQL文件的大小可能会有所不同(为了测试,我生成了一个6 MB的文件).我希望我的桌面客户端能够显示进度,但是PHP脚本没有公开它的大小,所以我没有Progressbar.Max分配值.

如何让我的PHP脚本让客户知道它有多大before the whole thing is over

注意:下载SQL文件不是一个选项,因为脚本必须销毁它.:)

use*_*594 10

你会的

$fsize = filesize($file_path); 
Run Code Online (Sandbox Code Playgroud)

其中$ file_path将是生成的文件xdb_backup.sql的路径,

获取服务器中的文件大小并返回标题,并附加以下行.

header("Content-Length: " . $fsize);
Run Code Online (Sandbox Code Playgroud)

看看http://www.hotscripts.com/forums/php/47774-download-script-not-sending-file-size-header-corrupt-files-since-using-remote-file-server.html这解释下载php脚本.