使用FTP URL协议包装程序是否等于使用FTP复制文件?

时间:2019-01-28 08:20:51

标签: php ftp

我正在尝试创建FTP进程以输出其进度。

我在Getting ftp_put progress上发现了这个答案很简单 由Martin Prikryl

<?php
$local_path = "\Local\Path\Local_File.zip";
$remote_path = 'ftp://username:password@address/Remote_File.zip';

$size = filesize($local_path);

$hin = fopen($local_path, "rb") or die("Cannot open source file");
$hout = fopen($remote_path, "wb") or die("Cannot open destination file");

while (!feof($hin))
{
    $buf = fread($hin, 10240);
    fwrite($hout, $buf);
    echo "\r".intval(ftell($hin)/$size*100)."%";
}

fclose($hin);
fclose($hout);

此代码有效。

我想问的是,是否要使用FTP URL协议包装程序(ftp://)作为URL。是否使用FTP复制文件?还是只是使用普通的PHP命令进行复制?

因为我被要求为我的项目创建一个FTP进程,但是复制时我需要进度。

感谢:)

1 个答案:

答案 0 :(得分:1)

FTP URL包装器在后台使用FTP协议。因此,它们被称为“ FTP”。

我不知道“使用普通的PHP命令进行复制” 是什么意思。如果您到服务器的唯一接口是FTP,并且包装器使用的是FTP以外的任何东西,则包装器显然会失败。如果有效,则仅证明它使用FTP。

FTP URL protocol wrapper的文档说:

  

允许对现有文件进行读取访问,并通过FTP 创建新文件。如果服务器不支持被动模式ftp,则连接将失败。