我正在尝试使用 PHP 从 FTP URL 下载文件,看起来像ftp://username:password@domain/file.zip
. URL 很好,因为我可以将文件下载并粘贴到任何浏览器中。Fopen 支持这种文件流,在这里看到它:fopen。这是我的代码:
[...]
$destination_folder = '../importmlsupload/';
$url = "ftp://user:password@domain/file.zip";
$newfname = $destination_folder . basename($url);
$file = fopen($url, "rb");
if ($file) {
$newf = fopen($newfname, "wb");
while(!feof($file)) {
$s = fread($file, 1024);
fwrite($newf, $s, 1024 );
}
}
if (!empty($file)) {
fclose($file);
}
if (!empty($newf)) {
fclose($newf);
}
问题是我下载了一个空文件。我做了一些验证,得到以下结果:文件在服务器上创建成功,但是while循环(!feof(...))在第一步之后结束。因此它读取 1024 个字节并退出循环。换句话说,feof 在前 1024 个字节或读取后返回 true。
尝试使用 HTTP URL 结果导入成功,但 FTP URL 不成功
难道我做错了什么?