1

有没有办法通过用 php 建立的 ftp 连接来恢复中断的下载?php可以恢复损坏的下载吗?

4

1 回答 1

2

是的,它可以,使用 ftp_fget() 函数的可选 $resumepos 参数。

例子:

$remote_file_name = "/test.txt";
$local_file_name = "test.txt";
$ftp_server = "ftp.your.server";
$username = "anonymous";
$password = "my@email";

$ftp_stream = ftp_connect($ftp_server);
$result = ftp_login($ftp_stream, $username, $password);
if ((!$ftp_stream) || (!$result)) {
  echo "FTP connection failed\n";
} else {
  echo "connected to FTP\n";
}

if (file_exists($local_file_name)) {
  $resume_pos = filesize($local_file_name);
} else {
  $resume_pos = 0;
}

$local_file_handle = fopen($local_file_name, "w");
$result = ftp_fget($ftp_stream, $local_file_handle, $remote_file_name, FTP_BINARY, $resume_pos);

fclose($local_file_handle);
ftp_close($ftp_stream);

您可以使用 ftp_size() 函数来查看文件是否需要恢复,但并非所有 FTP 服务器都支持该功能,因此您必须进行检查。

于 2009-06-26T20:52:33.043 回答