我正在尝试创建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进程,但是复制时我需要进度。
感谢:)
答案 0 :(得分:1)
FTP URL包装器在后台使用FTP协议。因此,它们被称为“ FTP”。
我不知道“使用普通的PHP命令进行复制” 是什么意思。如果您到服务器的唯一接口是FTP,并且包装器使用的是FTP以外的任何东西,则包装器显然会失败。如果有效,则仅证明它使用FTP。
允许对现有文件进行读取访问,并通过FTP 创建新文件。如果服务器不支持被动模式ftp,则连接将失败。