我有一个可用的FTP文件下载脚本。
我下载的文件大约每天2-4 GB。
我想知道是否有一种方法来获取文件的百分比?PHP显示ftp_get进度的百分比?
我看过php.net和这里,但我找不到任何类似的问题,而是花更多的时间看我想我会问人比我更聪明。
我在想如果有一个函数可以看到它在下载的位置,但我找不到一个,因为ftp_get
必须先完成,以便消除每隔几秒刷新一次缓冲区的机会新的百分比。
有人吗?
这是我的代码:我隐藏了所有的变量。
$conn_id = ftp_connect($ftp_server);
$login_result = ftp_login($conn_id, $ftp_user_name, $ftp_user_pass);
if (ftp_get($conn_id, $local_file, $server_file, FTP_BINARY)) {
echo "Successfully written to $local_file\n";
} else {
echo "There was a problem\n";
}
ftp_close($conn_id);
编辑:
我加入ftp_nb_get
这里是我的代码。它保持正常下载,只是不会将它回显给浏览器。
$ret = ftp_nb_get($conn_id, $local_file, $server_file, FTP_BINARY, $size);
while ($ret == FTP_MOREDATA) {
echo round((filesize($local_file)/$server_size)*100)."%\n";
$ret = ftp_nb_continue($conn_id);
}
您可能最终会使用类似于此的方法:http://stackoverflow.com/questions/2885468/getting-ftp-put-progress作为基本的ftp_put/get本身不支持任何形式的回调或通过ajax检查中间结果。 – ahillman3